/**
 * @ai-summary Auth domain types
 * @ai-context Type definitions for authentication and signup workflows
 */

// Request to create a new user account
export interface SignupRequest {
  email: string;
  password: string;
  termsAccepted: boolean;
}

// Terms data captured during signup for audit trail
export interface TermsData {
  ipAddress: string;
  userAgent: string;
  termsVersion: string;
  termsUrl: string;
  termsContentHash: string;
}

// Response from signup endpoint
export interface SignupResponse {
  userId: string;
  email: string;
  message: string;
}

// Response from verify status endpoint
export interface VerifyStatusResponse {
  emailVerified: boolean;
  email: string;
}

// Response from resend verification endpoint
export interface ResendVerificationResponse {
  message: string;
}

// Response from security status endpoint
export interface SecurityStatusResponse {
  emailVerified: boolean;
  email: string;
  passkeysEnabled: boolean;
  passwordLastChanged: string | null;
}

// Response from password reset request endpoint
export interface PasswordResetResponse {
  message: string;
  success: boolean;
}
