feat: adiciona SLA por empresa e modal de exclusao de automacoes
Some checks failed
Some checks failed
## SLA por Empresa - Adiciona tabela companySlaSettings no schema - Cria convex/companySlas.ts com queries e mutations - Modifica resolveTicketSlaSnapshot para verificar SLA da empresa primeiro - Fallback: empresa > categoria > padrao ## Modal de Exclusao de Automacoes - Substitui confirm() nativo por Dialog gracioso - Segue padrao do delete-ticket-dialog 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
b3fcbcc682
commit
33f0cc2e13
4 changed files with 404 additions and 22 deletions
|
|
@ -594,6 +594,29 @@ export default defineSchema({
|
|||
.index("by_tenant_category_priority", ["tenantId", "categoryId", "priority"])
|
||||
.index("by_tenant_category", ["tenantId", "categoryId"]),
|
||||
|
||||
// SLA por empresa - permite configurar políticas de SLA específicas por cliente
|
||||
// Quando um ticket é criado, o sistema busca primeiro aqui antes de usar categorySlaSettings
|
||||
companySlaSettings: defineTable({
|
||||
tenantId: v.string(),
|
||||
companyId: v.id("companies"),
|
||||
// Se categoryId for null, aplica-se a todas as categorias da empresa
|
||||
categoryId: v.optional(v.id("ticketCategories")),
|
||||
priority: v.string(), // URGENT, HIGH, MEDIUM, LOW, DEFAULT
|
||||
responseTargetMinutes: v.optional(v.number()),
|
||||
responseMode: v.optional(v.string()), // "business" | "calendar"
|
||||
solutionTargetMinutes: v.optional(v.number()),
|
||||
solutionMode: v.optional(v.string()), // "business" | "calendar"
|
||||
alertThreshold: v.optional(v.number()), // 0.1 a 0.95 (ex: 0.8 = 80%)
|
||||
pauseStatuses: v.optional(v.array(v.string())),
|
||||
calendarType: v.optional(v.string()),
|
||||
createdAt: v.number(),
|
||||
updatedAt: v.number(),
|
||||
actorId: v.optional(v.id("users")),
|
||||
})
|
||||
.index("by_tenant_company", ["tenantId", "companyId"])
|
||||
.index("by_tenant_company_category", ["tenantId", "companyId", "categoryId"])
|
||||
.index("by_tenant_company_category_priority", ["tenantId", "companyId", "categoryId", "priority"]),
|
||||
|
||||
ticketFields: defineTable({
|
||||
tenantId: v.string(),
|
||||
key: v.string(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue