import { type User } from 'src/types/user';

export enum AgentGroupStatus {
  ACTIVE = 'ACTIVE',
  INACTIVE = 'INACTIVE',
}

export type HelpDesk = {
  id: string;
  name: string;
  createdAt: string;
  updatedAt: string;
  userUpdatedAt: string;
  coordinators: number[];
};

export type ShortServiceManagementUser = Pick<
  User,
  | 'id'
  | 'employeeInternalId'
  | 'firstName'
  | 'lastName'
  | 'profilePicture'
  | 'email'
>;

export type AgentGroup = {
  id: string;
  name: string;
  description: string;
  status: AgentGroupStatus;
  createdAt: string;
  updatedAt: string;
  userUpdatedAt: string;
  agents: number[];
};

export type Agent = {
  user: ShortServiceManagementUser;
  isCoordinator: boolean;
  helpDesks: HelpDesk[];
  agentGroups: AgentGroup[];
};

export type HelpDeskAssociatedMember = {
  openTaskCount: number;
  agentGroupCount: number;
  averageRating: number;
  user: ShortServiceManagementUser;
};
