57 lines
1.5 KiB
TypeScript
Raw Normal View History

/**
* Catalog Domain - Contract
*
* Constants and types for the catalog domain.
* Most types are derived from schemas (see schema.ts).
*/
// ============================================================================
// Salesforce Field Mapping (Provider-Specific, Not Validated)
// ============================================================================
/**
* Salesforce Product2 field mapping
* This is provider-specific and not validated at runtime
*/
export interface SalesforceProductFieldMap {
sku: string;
portalCategory: string;
portalCatalog: string;
portalAccessible: string;
itemClass: string;
billingCycle: string;
whmcsProductId: string;
whmcsProductName: string;
internetPlanTier: string;
internetOfferingType: string;
displayOrder: string;
bundledAddon: string;
isBundledAddon: string;
simDataSize: string;
simPlanType: string;
simHasFamilyDiscount: string;
vpnRegion: string;
}
// ============================================================================
// Re-export Types from Schema (Schema-First Approach)
// ============================================================================
export type {
CatalogProductBase,
CatalogPricebookEntry,
// Internet products
InternetCatalogProduct,
InternetPlanTemplate,
InternetPlanCatalogItem,
InternetInstallationCatalogItem,
InternetAddonCatalogItem,
// SIM products
SimCatalogProduct,
SimActivationFeeCatalogItem,
// VPN products
VpnCatalogProduct,
// Union type
CatalogProduct,
} from './schema';