Files
cfw-autumn/shared/models/billingModels/initFullCusProductContext.ts
2025-12-15 15:47:26 +00:00

35 lines
1.1 KiB
TypeScript

import type { ApiVersion } from "../../api/versionUtils/ApiVersion";
import type { FullCustomer } from "../cusModels/fullCusModel";
import type { AttachReplaceable } from "../cusProductModels/cusEntModels/replaceableSchema";
import type {
CollectionMethod,
CusProductStatus,
} from "../cusProductModels/cusProductEnums";
import type { FeatureOptions } from "../cusProductModels/cusProductModels";
import type { FullProduct } from "../productModels/productModels";
import type { ExistingUsages } from "./existingUsages";
export interface InitFullCusProductContext {
fullCus: FullCustomer;
product: FullProduct;
featureQuantities: FeatureOptions[];
replaceables: AttachReplaceable[];
// For customer entitlements
existingUsages?: ExistingUsages;
}
export interface InitFullCusProductOptions {
subscriptionId?: string;
subscriptionScheduleId?: string;
isCustom?: boolean;
resetCycleAnchor?: number; // Unix timestamp of the next
canceledAt?: number;
status?: CusProductStatus; // Used for scheduling product
startsAt?: number; // Used for scheduling product
// Optional + random
apiSemver?: ApiVersion;
collectionMethod?: CollectionMethod;
}