/** * Customer Domain - Contract * * Constants and provider-specific types. * Main domain types exported from schema.ts * * Pattern matches billing and subscriptions domains. */ // ============================================================================ // User Role Constants // ============================================================================ export const USER_ROLE = { USER: "USER", ADMIN: "ADMIN", } as const; export type UserRoleValue = (typeof USER_ROLE)[keyof typeof USER_ROLE]; // ============================================================================ // Salesforce Integration Types (Provider-Specific, Not Validated) // ============================================================================ /** * Salesforce account field mapping * This is provider-specific and not validated at runtime */ export interface SalesforceAccountFieldMap { internetEligibility: string; customerNumber: string; } /** * Salesforce account record structure * Raw structure from Salesforce API */ export interface SalesforceAccountRecord { Id: string; Name?: string | null; WH_Account__c?: string | null; [key: string]: unknown; } /** * Salesforce contact record structure * Raw structure from Salesforce API */ export interface SalesforceContactRecord { Id: string; AccountId?: string | null; FirstName?: string | null; LastName?: string | null; Email?: string | null; MobilePhone?: string | null; Phone?: string | null; Sex__c?: string | null; Birthdate?: string | null; // YYYY-MM-DD format [key: string]: unknown; } // ============================================================================ // Re-export Types from Schema (Schema-First Approach) // ============================================================================ export type { User, UserAuth, UserRole, Address, AddressFormData, ResidenceCardVerificationStatus, ResidenceCardVerification, } from "./schema.js";