/** * Checkout Domain - Contract * * Business constants and helpers for the checkout flow. */ // Re-export ORDER_TYPE from orders domain for convenience export { ORDER_TYPE, type OrderTypeValue } from "../orders/contract.js"; /** * Checkout-specific order types (subset of ORDER_TYPE, excludes "Other") * These are the types that can be ordered through checkout. */ export const CHECKOUT_ORDER_TYPE = { INTERNET: "Internet", SIM: "SIM", VPN: "VPN", } as const; export type CheckoutOrderTypeValue = (typeof CHECKOUT_ORDER_TYPE)[keyof typeof CHECKOUT_ORDER_TYPE]; /** * Convert legacy uppercase order type to PascalCase * Used for migrating old localStorage data */ export function normalizeOrderType(value: unknown): CheckoutOrderTypeValue | null { if (typeof value !== "string") return null; const upper = value.trim().toUpperCase(); switch (upper) { case "INTERNET": return "Internet"; case "SIM": return "SIM"; case "VPN": return "VPN"; default: return null; } } // Re-export types from schema export type { OrderType, PriceBreakdownItem, CartItem } from "./schema.js";