feat: enforce visit scheduling ux
This commit is contained in:
parent
6473e8d40f
commit
72a4748a81
6 changed files with 160 additions and 36 deletions
|
|
@ -267,6 +267,15 @@ function buildTimelineMessage(type: string, payload: Record<string, unknown> | n
|
|||
const sessionText = sessionDuration ? formatDurationMs(sessionDuration) : null
|
||||
const categoryName = p.categoryName as string | undefined
|
||||
const subcategoryName = p.subcategoryName as string | undefined
|
||||
const formatVisitDate = (value: unknown): string | null => {
|
||||
if (typeof value === "number" || typeof value === "string") {
|
||||
const date = new Date(value)
|
||||
if (!Number.isNaN(date.getTime())) {
|
||||
return format(date, "dd MMM yyyy HH:mm", { locale: ptBR })
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case "STATUS_CHANGED":
|
||||
|
|
@ -323,8 +332,29 @@ function buildTimelineMessage(type: string, payload: Record<string, unknown> | n
|
|||
}
|
||||
case "MANAGER_NOTIFIED":
|
||||
return "Gestor notificado"
|
||||
case "VISIT_SCHEDULED":
|
||||
return "Visita agendada"
|
||||
case "VISIT_SCHEDULED": {
|
||||
const visitDate =
|
||||
(p.visitDate as unknown) ?? p.scheduledFor ?? p.scheduledAt ?? p.to ?? null
|
||||
const formatted = formatVisitDate(visitDate)
|
||||
return formatted ? `Visita agendada para ${formatted}` : "Visita agendada"
|
||||
}
|
||||
case "VISIT_SCHEDULE_CHANGED": {
|
||||
const nextVisit =
|
||||
(p.visitDate as unknown) ?? p.scheduledFor ?? p.scheduledAt ?? p.to ?? null
|
||||
const previousVisit =
|
||||
p.previousVisitDate ??
|
||||
p.previousScheduledFor ??
|
||||
p.previousScheduledAt ??
|
||||
p.from ??
|
||||
null
|
||||
const formattedNext = formatVisitDate(nextVisit)
|
||||
const formattedPrevious = formatVisitDate(previousVisit)
|
||||
if (formattedNext) {
|
||||
const suffix = formattedPrevious ? ` (antes: ${formattedPrevious})` : ""
|
||||
return `Data da visita alterada para ${formattedNext}${suffix}`
|
||||
}
|
||||
return "Data da visita alterada"
|
||||
}
|
||||
case "CSAT_RECEIVED":
|
||||
return "CSAT recebido"
|
||||
case "CSAT_RATED":
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue