import { RenameId } from "../utils/mongoDB/types.js";
import { User } from "./user.types.js";
import { Document, Model, ObjectIdToString, Types } from "mongoose";

//#region src/types/plan.types.d.ts
type PlanType = 'FREE' | 'PREMIUM' | 'ENTERPRISE';
type PlanData = {
  type: PlanType;
  creatorId?: User['id'];
  subscriptionId?: string;
  customerId?: string;
  priceId?: string;
  status?: 'active' | 'canceled' | 'past_due' | 'unpaid' | 'incomplete' | 'incomplete_expired' | 'paused' | 'trialing';
  period?: 'MONTHLY' | 'YEARLY';
};
type Plan = PlanData & {
  id: Types.ObjectId;
  createdAt: number;
  updatedAt: number;
};
type PlanAPI = ObjectIdToString<Plan>;
type PlanSchema = RenameId<Plan>;
type PlanModelType = Model<Plan>;
type PlanDocument = Document<unknown, {}, Plan> & Plan;
//#endregion
export { Plan, PlanAPI, PlanData, PlanDocument, PlanModelType, PlanSchema, PlanType };
//# sourceMappingURL=plan.types.d.ts.map