/**
 * @ai-summary Type definitions for onboarding feature
 * @ai-context Manages user onboarding flow, preferences, and completion status
 */

export type UnitSystem = 'imperial' | 'metric';

export interface OnboardingPreferences {
  unitSystem: UnitSystem;
  currencyCode: string;
  timeZone: string;
}

export interface OnboardingStatus {
  preferencesSet: boolean;
  onboardingCompleted: boolean;
  onboardingCompletedAt: Date | null;
}

export interface SavePreferencesRequest {
  unitSystem?: UnitSystem;
  currencyCode?: string;
  timeZone?: string;
}

export interface SavePreferencesResponse {
  success: boolean;
  preferences: OnboardingPreferences;
}

export interface CompleteOnboardingResponse {
  success: boolean;
  completedAt: Date;
}

export interface OnboardingStatusResponse {
  preferencesSet: boolean;
  onboardingCompleted: boolean;
  onboardingCompletedAt: string | null;
}
