Files
cfw-autumn/shared/models/checkModels/checkPreviewModels.ts
2025-05-24 11:25:11 +01:00

74 lines
1.6 KiB
TypeScript

import { UsageModel } from "../productV2Models/productItemModels/productItemModels.js";
import { Infinite } from "../productModels/productEnums.js";
import { ProductResponse } from "../productV2Models/productResponseModels.js";
export enum AttachScenario {
// AlreadyAttached = "already_attached",
// AlreadyScheduled = "already_scheduled",
Scheduled = "scheduled",
Active = "active",
New = "new",
Renew = "renew",
Upgrade = "upgrade",
Downgrade = "downgrade",
Cancel = "cancel",
Expired = "expired",
}
export interface CheckProductFormattedPreview {
title: string;
message: string;
scenario: AttachScenario;
product_id: string;
product_name: string;
recurring: boolean;
error_on_attach?: boolean;
next_cycle_at?: number;
current_product_name?: string;
items?: {
price: string;
description: string;
usage_model?: UsageModel;
}[];
options?: {
feature_id: string;
feature_name: string;
billing_units: number;
price?: number;
tiers?: {
to: number | typeof Infinite;
amount: number;
}[];
}[];
due_today?: {
price: number;
currency: string;
};
due_next_cycle?: {
price: number;
currency: string;
};
}
export enum FeaturePreviewScenario {
UsageLimit = "usage_limit",
FeatureFlag = "feature_flag",
}
export interface CheckFeatureFormattedPreview {
title: string;
message: string;
scenario: FeaturePreviewScenario;
feature_id: string;
feature_name: string;
products: ProductResponse[];
// next_main_product: ProductResponse | null;
// next_add_on_product: ProductResponse | null;
}