import { ICatalogItem, IItemCode } from './catalog'; export interface IItemPricing { sku: string; type: string; visibility: string; price: number; currency: string; availability: string; start_date: string; end_date: string; applicableTaxCodes: Array; restrictedPaymentType: Array; attributes?: Array<{ name: string; value: string; }>; } export interface IPlanItem extends ICatalogItem, IItemPricing { allocatedVoice: string | number; allocatedText: string | number; allocatedData: string | number; maxAddonData: string | number; compatibleSim: Array; associatedProduct: string; compatibleAddonID: Array; cycleType: string; cycleCount: string | number; subscriptionCycles: string | number; allowedNetwork?: Array; vacationPlan?: boolean; ebbPlan?: boolean; flow: string; marketingTitle?: string; codes?: Array; } export interface IAddonItem extends ICatalogItem, IItemPricing { allocatedVoice?: string | number; allocatedText?: string | number; allocatedData?: string | number; allowedNetwork?: Array; compatiblePlanID: Array; addonType?: string; codes?: Array; } export interface ISIMItem extends ICatalogItem, IItemPricing { codes?: Array; compatibleNetwork?: string; allowedNetwork?: Array; } export interface IACPDevice { createdAt?: Date; updatedAt?: Date; id: string; fields: { typeId: string; modelId: string; sku: string; price: string; deviceMake: string; deviceModel: string; modelNumber: string; marketValue: string; }; }