export enum TicketStatus {
  OPEN = 'OPEN',
  IN_PROGRESS = 'IN_PROGRESS',
  AWAITING_RESPONSE = 'AWAITING_RESPONSE',
  ESCALATED = 'ESCALATED',
  RESOLVED = 'RESOLVED',
  CLOSED = 'CLOSED',
  REOPENED = 'REOPENED',
}

export enum TicketPriority {
  LOW = 'LOW',
  MEDIUM = 'MEDIUM',
  HIGH = 'HIGH',
  CRITICAL = 'CRITICAL',
}

export enum TicketCategory {
  ROUTE_ISSUE = 'ROUTE_ISSUE',
  DRIVER_COMPLAINT = 'DRIVER_COMPLAINT',
  GPS_MALFUNCTION = 'GPS_MALFUNCTION',
  RFID_ISSUE = 'RFID_ISSUE',
  BILLING = 'BILLING',
  SAFETY_CONCERN = 'SAFETY_CONCERN',
  APP_BUG = 'APP_BUG',
  GENERAL = 'GENERAL',
}

export const TICKET_STATUS_TRANSITIONS: Record<TicketStatus, TicketStatus[]> = {
  [TicketStatus.OPEN]: [TicketStatus.IN_PROGRESS, TicketStatus.ESCALATED, TicketStatus.CLOSED],
  [TicketStatus.IN_PROGRESS]: [TicketStatus.AWAITING_RESPONSE, TicketStatus.ESCALATED, TicketStatus.RESOLVED],
  [TicketStatus.AWAITING_RESPONSE]: [TicketStatus.IN_PROGRESS, TicketStatus.ESCALATED, TicketStatus.RESOLVED],
  [TicketStatus.ESCALATED]: [TicketStatus.IN_PROGRESS, TicketStatus.RESOLVED],
  [TicketStatus.RESOLVED]: [TicketStatus.CLOSED, TicketStatus.REOPENED],
  [TicketStatus.CLOSED]: [TicketStatus.REOPENED],
  [TicketStatus.REOPENED]: [TicketStatus.IN_PROGRESS, TicketStatus.ESCALATED],
};
