// src/app/modules/users/models/user.model.ts
export enum UserRole {
  DCB_ADMIN = 'DCB_ADMIN',
  DCB_SUPPORT = 'DCB_SUPPORT',
  DCB_PARTNER = 'DCB_PARTNER'
}

export interface HubUserResponse {
  id: string;
  username: string;
  email: string;
  firstName: string;
  lastName: string;
  role: UserRole;
  enabled: boolean;
  emailVerified: boolean;
  createdBy: string;
  createdByUsername: string;
  createdTimestamp: number;
  lastLogin?: number;
  userType: 'HUB';
}

export interface CreateHubUserDto {
  username: string;
  email: string;
  firstName: string;
  lastName: string;
  password: string;
  role: UserRole;
  enabled?: boolean;
  emailVerified?: boolean;
}

export interface UpdateHubUserDto {
  firstName?: string;
  lastName?: string;
  email?: string;
  enabled?: boolean;
}

export interface ResetPasswordDto {
  userId: string;
  newPassword: string;
  temporary?: boolean;
}

export interface PaginatedUserResponse {
  users: HubUserResponse[];
  total: number;
  page: number;
  limit: number;
  totalPages: number;
}