import { Amount } from '../../../commonStateTypes/amount'; import { ID } from '../../../commonStateTypes/common'; import { ZeniDate } from '../../../zeniDayJS'; export interface InvoicingPlanTier { price: Amount; startingUnit: number; endingUnit?: number; packageSize?: number; pricingType?: string; } export interface InvoicingAccountingDetail { accountingCategory1?: string; accountingCategory2?: string; accountingCategory3?: string; accountingCategory4?: string; accountingCode?: string; sku?: string; } export interface InvoicingProduct { id: ID; accountingDetail?: InvoicingAccountingDetail; applicableItems?: ID[]; archivedAt?: ZeniDate; billingCycles?: number; createdAt?: ZeniDate; currencyCode?: string; description?: string; enabled?: boolean; enabledForCheckout?: boolean; enabledInPortal?: boolean; freeQuantity?: number; giftClaimRedirectUrl?: string; includedInMrr?: boolean; invoiceNotes?: string; isGiftable?: boolean; isShippable?: boolean; isTaxable?: boolean; itemApplicability?: string; itemID?: ID; itemType?: string; metered?: boolean; name?: string; period?: number; periodUnit?: string; price?: Amount; priceCode?: string; pricingModel?: string; productCode?: string; prorationType?: string; shippingPeriod?: number; shippingPeriodUnit?: string; showDescriptionInInvoices?: boolean; showDescriptionInQuotes?: boolean; status?: string; subscriptionCount?: number; tiers?: InvoicingPlanTier[]; trialEndAction?: string; trialPeriod?: number; trialPeriodUnit?: string; type?: string; unit?: string; updatedAt?: ZeniDate; usageAccumulationResetFrequency?: string; usageCalculation?: string; } export interface InvoicingProductState { productByID: Record; }