// src/interfaces/project.ts
// Copyright (C) 2026 Rob Colbert <rob.colbert@openplatform.us>
// Licensed under the Apache License, Version 2.0

import type { IUser } from "./user.js";
import { GadgetId } from "../lib/gadget-id.ts";
import { HydratedDocument } from "mongoose";

export enum ProjectStatus {
  Active = "active",
  Inactive = "inactive",
  Archived = "archived",
}

export interface IProject {
  _id: GadgetId;
  createdAt: Date;
  user: IUser | GadgetId;
  status: ProjectStatus;
  name: string;
  slug: string;
  gitUrl?: string;
}

export type ProjectDocument = HydratedDocument<IProject>;
