61 lines
1.6 KiB
TypeScript

export interface CatalogProductBase {
id: string;
sku: string;
name: string;
description?: string;
displayOrder?: number;
billingCycle?: string;
monthlyPrice?: number;
oneTimePrice?: number;
unitPrice?: number;
}
export interface InternetCatalogProduct extends CatalogProductBase {
internetPlanTier?: string;
internetOfferingType?: string;
features?: string[];
}
export interface InternetPlanTemplate {
tierDescription: string;
description?: string;
features?: string[];
}
export interface InternetPlanCatalogItem extends InternetCatalogProduct {
catalogMetadata?: {
tierDescription?: string;
features?: string[];
isRecommended?: boolean;
};
}
export interface InternetInstallationCatalogItem extends InternetCatalogProduct {
catalogMetadata?: {
installationTerm: "One-time" | "12-Month" | "24-Month";
};
}
export interface InternetAddonCatalogItem extends InternetCatalogProduct {
isBundledAddon?: boolean;
bundledAddonId?: string;
}
export interface SimCatalogProduct extends CatalogProductBase {
simDataSize?: string;
simPlanType?: string;
simHasFamilyDiscount?: boolean;
isBundledAddon?: boolean;
bundledAddonId?: string;
}
export interface SimActivationFeeCatalogItem extends SimCatalogProduct {
catalogMetadata?: {
isDefault: boolean;
};
}
export interface VpnCatalogProduct extends CatalogProductBase {
vpnRegion?: string;
}
export interface CatalogPricebookEntry {
id?: string;
name?: string;
unitPrice?: number;
pricebook2Id?: string;
product2Id?: string;
isActive?: boolean;
}