export interface User {
  username: string;
  email?: string;
  avatar?: string;
  accent_color: string;
  show_edit_date?: number;
  colored_icons?: number;
  floating_toolbar_enabled?: number;
  two_factor_enabled?: number;
  is_public_profile?: number;
}

export interface AuthResponse {
  authenticated: boolean;
  userId?: number;
  username?: string;
  requires2FA?: boolean;
}

export interface AiSettings {
  openai_api_key: string;
  openai_base_url: string;
  openai_model: string;
  ai_enabled: 0 | 1;
}

export interface TwoFactorSetup {
  success: boolean;
  secret: string;
  qrCode: string;
  otpauthUrl: string;
}

export interface TwoFactorStatus {
  twoFactorEnabled: boolean;
}

export interface TwoFactorEnableResponse {
  success: boolean;
  message: string;
  backupCodes: string[];
}

export interface TwoFactorDisableResponse {
  success: boolean;
  message: string;
}

export interface TwoFactorVerifyResponse {
  success: boolean;
  message: string;
  backupCodeUsed?: boolean;
}
