/**
 * Address Domain
 *
 * Exports address lookup contracts + schemas.
 *
 * Provider adapters (BFF-only) live under: `@customer-portal/domain/address/providers`.
 *
 * Types are derived from Zod schemas (Schema-First Approach)
 */

// Constants
export { RESIDENCE_TYPE, ADDRESS_LOOKUP_PROVIDER } from "./contract.js";
export type { ResidenceType, AddressLookupProvider } from "./contract.js";

// Schemas (includes derived types)
export {
  // ZIP code
  zipCodeSchema,
  zipCodeLookupRequestSchema,
  // Japan Post address
  japanPostAddressSchema,
  addressLookupResultSchema,
  // Building info
  buildingInfoSchema,
  // Bilingual address
  bilingualAddressSchema,
  addressUpdateRequestSchema,
  // Mapping functions
  prepareWhmcsAddressFields,
  prepareSalesforceContactAddressFields,
} from "./schema.js";

// Types
export type {
  ZipCode,
  ZipCodeLookupRequest,
  JapanPostAddress,
  AddressLookupResult,
  BuildingInfo,
  BilingualAddress,
  AddressUpdateRequest,
  WhmcsAddressFields,
  SalesforceContactAddressFields,
} from "./schema.js";
