import type { Identity } from './node.ts' export type TicketStatus = | 'Waiting' | 'Open' | 'ClosedAttendant' | 'ClosedClient' | 'Transferred' | 'ClosedClientInactivity' | 'ClosedAttendantInactivity' export type AttendanceHour = { id: string title: string description: string isMain: boolean storageDate?: string timeZoneId?: string } export enum DayOfWeek { Sunday = 'Sunday', Monday = 'Monday', Tuesday = 'Tuesday', Wednesday = 'Wednesday', Thursday = 'Thursday', Friday = 'Friday', Saturday = 'Saturday', } export type AttendanceHourScheduleItem = { id: string startTime: string endTime: string dayOfWeek: DayOfWeek } export type AttendanceHourOffItem = { id: string reason: string startDate: string endDate: string } export type DescriptionDocument = { id: string description: string } export type Queue = DescriptionDocument export type DetailedAttendanceHour = { attendanceHour: AttendanceHour attendanceHourScheduleItems: Array attendanceHourOffItems: Array queues: Array attendants: Array } export type DeskAttendanceQueue = { id?: string ownerIdentity?: Identity name: string isActive: boolean storageDate?: string priority?: number uniqueId?: string attendanceHourId?: string } export type DeskAttendanceQueueTag = { id?: string attendanceQueueId?: string ownerIdentity?: Identity tag: string } export type DeskRuleRelation = 'Contains' | 'NotContains' | 'Equals' | 'NotEquals' export type DeskRuleOperator = 'Or' | 'And' export type DeskRuleCondition = { property: string relation: DeskRuleRelation values: Array } export type DeskRule = { id?: string ownerIdentity?: Identity title: string team: string property?: string relation?: DeskRuleRelation isActive?: boolean values?: Array conditions?: Array operator?: DeskRuleOperator priority?: number storageDate?: string queueId?: string } export type DeskPriorityRule = { id?: string ownerIdentity?: Identity title: string queueId: string isActive?: boolean conditions?: Array operator?: DeskRuleOperator priority?: number urgency: number applyConditions: boolean storageDate?: string }