import { FetchStateAndError, FetchedState } from '../../../commonStateTypes/common'; import type { AuditLogEntityRouteOption, AuditLogListSortFieldOption, AuditLogSourceLabelOption, InvoicingCatalogItemLifecycleAction, InvoicingCatalogLifecycleActionOption, InvoicingCatalogProductLifecycleAction, InvoicingDiscountLifecycleActionOption, InvoicingFieldHelp, InvoicingNamedOption, InvoicingNamedOptionsByKey, InvoicingQboAccountMappingKindOption, InvoicingSubscriptionEditFieldOption, InvoicingSubscriptionLifecycleActionOption } from '../../../entity/invoicing/invoicingCommonPayload'; import { InvoicingDunningActionOption } from '../../../entity/invoicing/invoicingCommonPayload'; export interface InvoicingConfigViewState extends FetchedState { acceptTermsFetchState: FetchStateAndError; auditLogEntityRouteOptions: AuditLogEntityRouteOption[]; auditLogListSortFieldOptions: AuditLogListSortFieldOption[]; auditLogSourceLabels: AuditLogSourceLabelOption[]; autoCollectionOptions: InvoicingNamedOption[]; billingPeriodUnitOptions: InvoicingNamedOption[]; cardStatusOptions: InvoicingNamedOption[]; catalogItemLifecycleActionOptions: InvoicingCatalogLifecycleActionOption[]; catalogItemStatusOptions: InvoicingNamedOption[]; catalogItemTypeOptions: InvoicingNamedOption[]; catalogProductLifecycleActionOptions: InvoicingCatalogLifecycleActionOption[]; catalogTrialEndActionOptions: InvoicingNamedOption[]; catalogTrialUnitOptions: InvoicingNamedOption[]; creditNoteReasonCodeOptions: InvoicingNamedOption[]; creditNoteStatusOptions: InvoicingNamedOption[]; creditNoteTypeOptions: InvoicingNamedOption[]; customerStatusOptions: InvoicingNamedOption[]; customerTypeOptions: InvoicingNamedOption[]; dateFormatOptions: InvoicingNamedOption[]; discountApplyOnOptions: InvoicingNamedOption[]; discountDurationTypeOptions: InvoicingNamedOption[]; discountLifecycleActionOptions: InvoicingDiscountLifecycleActionOption[]; discountStatusOptions: InvoicingNamedOption[]; discountTypeOptions: InvoicingNamedOption[]; dunningCaseStatusOptions: InvoicingNamedOption[]; dunningScheduleActionOptions: InvoicingDunningActionOption[]; enableFetchState: FetchStateAndError; /** Help copy per field group, flattened to `code -> description` at load. */ fieldHelp: InvoicingFieldHelp; invoiceStatusOptions: InvoicingNamedOption[]; manualPaymentMethodOptions: InvoicingNamedOption[]; netTermDayOptions: InvoicingNamedOption[]; paymentGatewayOptions: InvoicingNamedOption[]; qboAccountMappingKindOptions: InvoicingQboAccountMappingKindOption[]; qboCustomerMatchingOptions: InvoicingNamedOption[]; qboSyncStatusOptions: InvoicingNamedOption[]; subscriptionCancelReasonCodeOptions: InvoicingNamedOption[]; subscriptionCancelTimingOptions: InvoicingNamedOption[]; subscriptionChangeOptionOptions: InvoicingNamedOption[]; subscriptionCommercialEditAllowedFromStatuses: string[]; subscriptionEditFieldOptions: InvoicingSubscriptionEditFieldOption[]; subscriptionLifecycleActionOptions: InvoicingSubscriptionLifecycleActionOption[]; subscriptionMetadataEditAllowedFromStatuses: string[]; subscriptionStatusOptions: InvoicingNamedOption[]; taxabilityOptions: InvoicingNamedOption[]; transactionStatusOptions: InvoicingNamedOption[]; transactionTypeOptions: InvoicingNamedOption[]; /** * Allowed tier `Type` options per pricing model. `undefined` means the config * has not been loaded yet — consumers disable the tier editor rather than * falling back to a hardcoded model-to-type map. */ catalogTierTypeOptionsByPricingModel?: InvoicingNamedOptionsByKey; createdAt?: string; invoicingTosAcceptanceIp?: string; invoicingTosAcceptanceTime?: string; invoicingTosAcceptanceUserAgent?: string; invoicingTosAcceptanceUserId?: string; /** `undefined` means the config has not been loaded yet (cache marker). */ isInvoicingEnabled?: boolean; isInvoicingSettingsSeeded?: boolean; isInvoicingTosAccepted?: boolean; updatedAt?: string; }