/** * Orders Domain - Contract * * Business types and provider-specific mapping types. * Validated types are derived from schemas (see schema.ts). */ import type { SalesforceProductFieldMap } from "../catalog/contract"; import type { SalesforceAccountFieldMap } from "../customer/contract"; import type { UserIdMapping } from "../mappings/contract"; // ============================================================================ // Business Types (used internally, not validated at API boundary) // ============================================================================ /** * Order creation type used for order creation flows */ export type OrderCreationType = "Internet" | "SIM" | "VPN" | "Other"; /** * Order status (string literal for flexibility) */ export type OrderStatus = string; /** * Order type (string literal for flexibility) */ export type OrderType = string; /** * User mapping for order creation (subset of UserIdMapping) */ export type UserMapping = Pick; // ============================================================================ // Salesforce Field Mapping (Provider-Specific, Not Validated) // ============================================================================ export interface SalesforceOrderMnpFieldMap { application: string; reservationNumber: string; expiryDate: string; phoneNumber: string; mvnoAccountNumber: string; portingDateOfBirth: string; portingFirstName: string; portingLastName: string; portingFirstNameKatakana: string; portingLastNameKatakana: string; portingGender: string; } export interface SalesforceOrderBillingFieldMap { street: string; city: string; state: string; postalCode: string; country: string; } export interface SalesforceOrderFieldMap { orderType: string; activationType: string; activationScheduledAt: string; activationStatus: string; internetPlanTier: string; installationType: string; weekendInstall: string; accessMode: string; hikariDenwa: string; vpnRegion: string; simType: string; eid: string; simVoiceMail: string; simCallWaiting: string; mnp: SalesforceOrderMnpFieldMap; whmcsOrderId: string; lastErrorCode?: string; lastErrorMessage?: string; lastAttemptAt?: string; addressChanged: string; billing: SalesforceOrderBillingFieldMap; } export interface SalesforceOrderItemFieldMap { billingCycle: string; whmcsServiceId: string; } export interface SalesforceFieldMap { account: SalesforceAccountFieldMap; product: SalesforceProductFieldMap; order: SalesforceOrderFieldMap; orderItem: SalesforceOrderItemFieldMap; } // ============================================================================ // Re-export Types from Schema (Schema-First Approach) // ============================================================================ export type { // Fulfillment order types FulfillmentOrderProduct, FulfillmentOrderItem, FulfillmentOrderDetails, // Order item types OrderItemSummary, OrderItemDetails, // Order types OrderSummary, OrderDetails, // Query and creation types OrderQueryParams, OrderConfigurationsAddress, OrderConfigurations, CreateOrderRequest, OrderBusinessValidation, SfOrderIdParam, } from './schema';