93 lines
2.8 KiB
TypeScript
Raw Normal View History

/**
* Customer Domain
*
* Main exports:
* - User: API response type
* - UserAuth: Portal DB auth state
* - Address: Address structure (follows billing/subscriptions pattern)
*
* Pattern matches billing and subscriptions domains.
*
* Types are derived from Zod schemas (Schema-First Approach)
*/
// ============================================================================
// Constants
// ============================================================================
export { USER_ROLE, type UserRoleValue } from "./contract";
// ============================================================================
// Domain Types (Clean Names - Public API)
// ============================================================================
export type {
User, // API response type (normalized camelCase)
UserAuth, // Portal DB auth state
UserRole, // "USER" | "ADMIN"
Address, // Address structure (not "CustomerAddress")
AddressFormData, // Address form validation
} from "./schema";
// ============================================================================
// Schemas
// ============================================================================
export {
userSchema,
userAuthSchema,
addressSchema,
addressFormSchema,
// Helper functions
combineToUser, // Domain helper: UserAuth + WhmcsClient → User
addressFormToRequest,
} from "./schema";
// ============================================================================
// Provider Namespace
// ============================================================================
/**
* Providers namespace contains provider-specific implementations
*
* Access as:
* - Providers.Whmcs.Client (full WHMCS type)
* - Providers.Whmcs.transformWhmcsClientResponse()
* - Providers.Portal.mapPrismaUserToUserAuth()
*/
export * as Providers from "./providers/index";
// ============================================================================
// Provider Raw Response Types (Selective Exports)
// ============================================================================
/**
* WHMCS API raw types (request and response)
* Only exported for BFF integration convenience
*/
export type {
// Request params
WhmcsAddClientParams,
WhmcsValidateLoginParams,
WhmcsCreateSsoTokenParams,
// Response types
WhmcsClientResponse,
WhmcsAddClientResponse,
WhmcsValidateLoginResponse,
WhmcsSsoResponse,
} from "./providers/whmcs/raw.types";
// ============================================================================
// Provider-Specific Types (For Integrations)
// ============================================================================
/**
* Salesforce integration types
* Provider-specific, not validated at runtime
*/
export type {
SalesforceAccountFieldMap,
SalesforceAccountRecord,
} from "./contract";