"use client" import { format } from "date-fns" import { formatDistanceToNow } from "date-fns" import { ptBR } from "date-fns/locale" import Link from "next/link" import { Tag } from "lucide-react" import type { Ticket } from "@/lib/schemas/ticket" import { Badge } from "@/components/ui/badge" import { Card, CardContent, CardHeader } from "@/components/ui/card" import { cn } from "@/lib/utils" const statusLabel: Record = { PENDING: "Pendente", AWAITING_ATTENDANCE: "Aguardando atendimento", PAUSED: "Pausado", RESOLVED: "Resolvido", } const statusTone: Record = { PENDING: "bg-slate-200 text-slate-800", AWAITING_ATTENDANCE: "bg-sky-100 text-sky-700", PAUSED: "bg-violet-100 text-violet-700", RESOLVED: "bg-emerald-100 text-emerald-700", } const priorityLabel: Record = { LOW: "Baixa", MEDIUM: "Média", HIGH: "Alta", URGENT: "Urgente", } const priorityTone: Record = { LOW: "bg-slate-100 text-slate-600", MEDIUM: "bg-sky-100 text-sky-700", HIGH: "bg-amber-100 text-amber-700", URGENT: "bg-rose-100 text-rose-700", } interface PortalTicketCardProps { ticket: Ticket } export function PortalTicketCard({ ticket }: PortalTicketCardProps) { const updatedAgo = formatDistanceToNow(ticket.updatedAt, { addSuffix: true, locale: ptBR, }) return (
#{ticket.reference} · {format(ticket.createdAt, "dd/MM/yyyy")}

{ticket.subject}

{ticket.summary ? (

{ticket.summary}

) : null}
{statusLabel[ticket.status]} {priorityLabel[ticket.priority]}
Fila {ticket.queue ?? "Sem fila"}
Status {statusLabel[ticket.status]}
Última atualização {updatedAgo}
Categoria {ticket.category?.name ?? "Não classificada"}
) }