feat: agenda polish, SLA sync, filters
This commit is contained in:
parent
7fb6c65d9a
commit
6ab8a6ce89
40 changed files with 2771 additions and 154 deletions
|
|
@ -6,8 +6,25 @@ export const ticketStatusSchema = z.enum([
|
|||
"PAUSED",
|
||||
"RESOLVED",
|
||||
])
|
||||
|
||||
export type TicketStatus = z.infer<typeof ticketStatusSchema>
|
||||
|
||||
export type TicketStatus = z.infer<typeof ticketStatusSchema>
|
||||
|
||||
const slaStatusSchema = z.enum(["pending", "met", "breached", "n/a"])
|
||||
const slaTimeModeSchema = z.enum(["business", "calendar"])
|
||||
|
||||
export const ticketSlaSnapshotSchema = z.object({
|
||||
categoryId: z.string().optional(),
|
||||
categoryName: z.string().optional(),
|
||||
priority: z.string(),
|
||||
responseTargetMinutes: z.number().nullable().optional(),
|
||||
responseMode: slaTimeModeSchema.optional(),
|
||||
solutionTargetMinutes: z.number().nullable().optional(),
|
||||
solutionMode: slaTimeModeSchema.optional(),
|
||||
alertThreshold: z.number().optional(),
|
||||
pauseStatuses: z.array(z.string()).default([]),
|
||||
})
|
||||
|
||||
export type TicketSlaSnapshot = z.infer<typeof ticketSlaSnapshotSchema>
|
||||
|
||||
export const ticketPrioritySchema = z.enum(["LOW", "MEDIUM", "HIGH", "URGENT"])
|
||||
export type TicketPriority = z.infer<typeof ticketPrioritySchema>
|
||||
|
|
@ -130,15 +147,23 @@ export const ticketSchema = z.object({
|
|||
company: ticketCompanySummarySchema.optional().nullable(),
|
||||
machine: ticketMachineSummarySchema.nullable().optional(),
|
||||
slaPolicy: z
|
||||
.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
targetMinutesToFirstResponse: z.number().nullable(),
|
||||
targetMinutesToResolution: z.number().nullable(),
|
||||
})
|
||||
.nullable(),
|
||||
dueAt: z.coerce.date().nullable(),
|
||||
firstResponseAt: z.coerce.date().nullable(),
|
||||
.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
targetMinutesToFirstResponse: z.number().nullable(),
|
||||
targetMinutesToResolution: z.number().nullable(),
|
||||
})
|
||||
.nullable(),
|
||||
slaSnapshot: ticketSlaSnapshotSchema.nullable().optional(),
|
||||
slaResponseDueAt: z.coerce.date().nullable().optional(),
|
||||
slaSolutionDueAt: z.coerce.date().nullable().optional(),
|
||||
slaResponseStatus: slaStatusSchema.nullable().optional(),
|
||||
slaSolutionStatus: slaStatusSchema.nullable().optional(),
|
||||
slaPausedAt: z.coerce.date().nullable().optional(),
|
||||
slaPausedBy: z.string().nullable().optional(),
|
||||
slaPausedMs: z.number().nullable().optional(),
|
||||
dueAt: z.coerce.date().nullable(),
|
||||
firstResponseAt: z.coerce.date().nullable(),
|
||||
resolvedAt: z.coerce.date().nullable(),
|
||||
updatedAt: z.coerce.date(),
|
||||
createdAt: z.coerce.date(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue