feat: checklists em tickets + automações

- Adiciona checklist no ticket (itens obrigatórios/opcionais) e bloqueia encerramento com pendências\n- Cria templates de checklist (globais/por empresa) + tela em /settings/checklists\n- Nova ação de automação: aplicar template de checklist\n- Corrige crash do Select (value vazio), warnings de Dialog e dimensionamento de charts\n- Ajusta SMTP (STARTTLS) e melhora teste de integração
This commit is contained in:
esdrasrenan 2025-12-13 20:51:47 -03:00
parent 4306b0504d
commit 88a9ef454e
27 changed files with 2685 additions and 226 deletions

View file

@ -32,6 +32,8 @@ type Template = {
order: number
}
const CLEAR_SELECT_VALUE = "__clear__"
export function TicketFormTemplatesManager() {
const { session, convexUserId } = useAuth()
const tenantId = session?.user.tenantId ?? DEFAULT_TENANT_ID
@ -276,12 +278,15 @@ export function TicketFormTemplatesManager() {
</div>
<div className="space-y-2">
<label className="text-sm font-medium text-neutral-700">Basear em</label>
<Select value={baseTemplate} onValueChange={setBaseTemplate}>
<Select
value={baseTemplate}
onValueChange={(value) => setBaseTemplate(value === CLEAR_SELECT_VALUE ? "" : value)}
>
<SelectTrigger>
<SelectValue placeholder="Em branco" />
</SelectTrigger>
<SelectContent>
<SelectItem value="">Começar do zero</SelectItem>
<SelectItem value={CLEAR_SELECT_VALUE}>Começar do zero</SelectItem>
{baseOptions.map((tpl) => (
<SelectItem key={tpl.key} value={tpl.key}>
{tpl.label}