/**
 * Get Started Domain
 *
 * Unified "Get Started" flow for:
 * - Email verification (OTP)
 * - Account status detection
 * - Guest eligibility check (no OTP required)
 * - Account completion (SF-only → full account)
 * - Signup with eligibility (full flow)
 */

// ============================================================================
// Constants & Contract Types
// ============================================================================

export {
  ACCOUNT_STATUS,
  OTP_ERROR_CODE,
  GET_STARTED_ERROR_CODE,
  type AccountStatus,
  type OtpErrorCode,
  type GetStartedErrorCode,
  type SendVerificationCodeRequest,
  type SendVerificationCodeResponse,
  type VerifyCodeRequest,
  type VerifyCodeResponse,
  type GuestEligibilityRequest,
  type GuestEligibilityResponse,
  type GuestHandoffToken,
  type CompleteAccountRequest,
  type SignupWithEligibilityRequest,
  type SignupWithEligibilityResponse,
  type MigrateWhmcsAccountRequest,
  type GetStartedSession,
  type GetStartedError,
} from "./contract.js";

// ============================================================================
// Schemas (for validation)
// ============================================================================

export {
  // OTP schemas
  sendVerificationCodeRequestSchema,
  sendVerificationCodeResponseSchema,
  otpCodeSchema,
  verifyCodeRequestSchema,
  verifyCodeResponseSchema,
  accountStatusSchema,
  // Guest eligibility schemas (no OTP required)
  guestEligibilityRequestSchema,
  guestEligibilityResponseSchema,
  guestHandoffTokenSchema,
  // Account completion schemas
  completeAccountRequestSchema,
  // Signup with eligibility schemas (full inline signup)
  signupWithEligibilityRequestSchema,
  signupWithEligibilityResponseSchema,
  // WHMCS migration schema (passwordless migration)
  migrateWhmcsAccountRequestSchema,
  // Session schema
  getStartedSessionSchema,
} from "./schema.js";
