// User Admin models and types

export interface User {
  id: number;
  phone_number: string;
  first_name: string;
  last_name: string;
  email?: string;
  national_code?: string;
  verified: boolean;
  hashed_password?: string;
  avatar?: string;
  created_at?: string;
  updated_at?: string;
}

export interface PaginatedUsersResponse {
  users: User[];
  total: number;
  limit: number;
  offset: number;
  filters?: UserFilters;
}

export interface UserFilters {
  verified?: boolean;
  search_text?: string;
  phone_number?: string;
  email?: string;
  national_code?: string;
  limit?: number;
  offset?: number;
}

export interface CreateUserRequest {
  phone_number: string;
  first_name: string;
  last_name: string;
  email?: string;
  national_code?: string;
  verified?: boolean;
  password?: string;
}

export interface UpdateUserRequest {
  first_name: string;
  last_name: string;
  email?: string;
  national_code?: string;
  verified: boolean;
}

export interface UpdateUserProfileRequest {
  first_name: string;
  last_name: string;
  email?: string;
  national_code?: string;
}

export interface UpdateUserAvatarRequest {
  avatar_url: string;
}

export interface UserStats {
  total_users: number;
  verified_users: number;
  unverified_users: number;
  recent_registrations: number;
}

export type UserStatus = 'verified' | 'unverified' | 'all';

export interface UserActionResponse {
  message: string;
}
