Files
cfw-autumn/shared/models/billingModels/context/billingContextOverride.ts
2026-02-09 08:45:50 -08:00

51 lines
1.6 KiB
TypeScript

import type { BillingVersion } from "@models/billingModels/context/billingContext";
import type { TransitionConfig } from "@models/billingModels/context/transitionConfig";
import type { StripeDiscountWithCoupon } from "@models/billingModels/stripe/stripeDiscountWithCoupon";
import type { FullCustomer } from "@models/cusModels/fullCusModel";
import type {
FeatureOptions,
FullCusProduct,
} from "@models/cusProductModels/cusProductModels";
import type { Entitlement } from "@models/productModels/entModels/entModels";
import type { Price } from "@models/productModels/priceModels/priceModels";
import type { FullProduct } from "@models/productModels/productModels";
import type Stripe from "stripe";
export interface StripeBillingContextOverride {
stripeSubscription?: Stripe.Subscription;
stripeSubscriptionSchedule?: Stripe.SubscriptionSchedule;
stripeCustomer: Stripe.Customer;
paymentMethod?: Stripe.PaymentMethod;
testClockFrozenTime?: number;
stripeDiscounts: StripeDiscountWithCoupon[];
}
export interface BillingContextOverride {
fullCustomer?: FullCustomer;
stripeBillingContext?: StripeBillingContextOverride;
productContext?: {
fullProduct: FullProduct;
customerProduct?: FullCusProduct;
customPrices?: Price[];
customEnts?: Entitlement[];
};
featureQuantities?: FeatureOptions[];
transitionConfigs?: TransitionConfig[];
billingVersion?: BillingVersion;
}
export interface UpdateSubscriptionBillingContextOverride
extends BillingContextOverride {
productContext?: {
fullProduct: FullProduct;
customerProduct: FullCusProduct;
customPrices?: Price[];
customEnts?: Entitlement[];
};
inheritBillingVersion?: boolean;
}