// ============================================================================
// Auth / profile types
// ============================================================================
// Identity (login, registration, recovery, verification, password changes,
// social sign-in) is owned by Ory Kratos — those flow types live in
// `src/lib/kratos/types.ts`, not here.
//
// What remains are the honeyDue-side *profile* types served by the Go API
// (`GET /auth/me`, `PUT /auth/profile`), authenticated by the Kratos session.
// ============================================================================

// ---------------------------------------------------------------------------
// Requests
// ---------------------------------------------------------------------------

export interface UpdateProfileRequest {
  email?: string | null;
  first_name?: string | null;
  last_name?: string | null;
}

// ---------------------------------------------------------------------------
// Responses
// ---------------------------------------------------------------------------

export interface UserResponse {
  id: number;
  username: string;
  email: string;
  first_name: string;
  last_name: string;
  is_active: boolean;
  verified: boolean;
  date_joined: string;
  last_login?: string | null;
}

export interface UserProfileResponse {
  id: number;
  user_id: number;
  verified: boolean;
  bio: string;
  phone_number: string;
  date_of_birth?: string | null;
  profile_picture: string;
}

export interface CurrentUserResponse {
  id: number;
  username: string;
  email: string;
  first_name: string;
  last_name: string;
  is_active: boolean;
  date_joined: string;
  last_login?: string | null;
  profile?: UserProfileResponse | null;
}

// ---------------------------------------------------------------------------
// User summary types (from responses/user.go)
// ---------------------------------------------------------------------------

export interface UserSummary {
  id: number;
  username: string;
  email: string;
  first_name: string;
  last_name: string;
}

export interface UserProfileSummary {
  id: number;
  user_id: number;
  bio?: string;
  profile_picture?: string;
  phone_number?: string;
}
