/**
 * User domain types
 * These types define the core business logic for users.
 * They are independent of the DataTable implementation.
 */

export type UserRole = "ADMIN" | "MODERATOR" | "USER";

export type UserStatus = "Active" | "Inactive" | "Pending";

export interface User {
  id: number;

  name: string;
  avatar?: string;

  email: string;
  phone: string;

  registeredOn: string;

  totalSpent: string;

  creditBalance: number;

  status: UserStatus;
}

export interface UsersResponse {
  data: User[];
  total: number;
  page: number;
  pageSize: number;
}

export interface CreateUserRequest {
  name: string;
  email: string;
  role: UserRole;
}

export interface UpdateUserRequest {
  name?: string;
  role?: UserRole;
  status?: UserStatus;
}
