feat: add company management and manager role support

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This commit is contained in:
esdrasrenan 2025-10-06 21:26:43 -03:00
parent 409cbea7b9
commit 854887f499
16 changed files with 955 additions and 126 deletions

View file

@ -70,6 +70,26 @@ model TeamMember {
@@id([teamId, userId])
}
model Company {
id String @id @default(cuid())
tenantId String
name String
slug String
cnpj String?
domain String?
phone String?
description String?
address String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
users User[]
tickets Ticket[]
@@unique([tenantId, slug])
@@index([tenantId, name])
}
model User {
id String @id @default(cuid())
tenantId String
@ -78,6 +98,7 @@ model User {
role UserRole
timezone String @default("America/Sao_Paulo")
avatarUrl String?
companyId String?
teams TeamMember[]
requestedTickets Ticket[] @relation("TicketRequester")
assignedTickets Ticket[] @relation("TicketAssignee")
@ -85,7 +106,10 @@ model User {
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
company Company? @relation(fields: [companyId], references: [id])
@@index([tenantId, role])
@@index([tenantId, companyId])
}
model Queue {
@ -116,6 +140,7 @@ model Ticket {
requesterId String
assigneeId String?
slaPolicyId String?
companyId String?
dueAt DateTime?
firstResponseAt DateTime?
resolvedAt DateTime?
@ -127,12 +152,14 @@ model Ticket {
assignee User? @relation("TicketAssignee", fields: [assigneeId], references: [id])
queue Queue? @relation(fields: [queueId], references: [id])
slaPolicy SlaPolicy? @relation(fields: [slaPolicyId], references: [id])
company Company? @relation(fields: [companyId], references: [id])
events TicketEvent[]
comments TicketComment[]
@@index([tenantId, status])
@@index([tenantId, queueId])
@@index([tenantId, assigneeId])
@@index([tenantId, companyId])
}
model TicketEvent {