fix architecture and write new tests

This commit is contained in:
root
2026-06-10 00:40:19 -04:00
parent 560da1cadf
commit 80a597bc10
377 changed files with 84020 additions and 1337 deletions
+64 -3
View File
@@ -502,7 +502,6 @@ model Company {
address Json?
status CompanyStatus @default(PENDING)
subscriptionPaymentRef String?
apiKey String @unique @default(cuid())
subscription Subscription?
billingAccounts BillingAccount[]
@@ -522,6 +521,7 @@ model Company {
notifications Notification[] @relation("CompanyNotifications")
complaints Complaint[]
companyMenuItems CompanyMenuItem[]
apiKeys CompanyApiKey[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@ -530,6 +530,21 @@ model Company {
@@map("companies")
}
model CompanyApiKey {
id String @id @default(cuid())
companyId String
company Company @relation(fields: [companyId], references: [id], onDelete: Cascade)
name String
prefix String @unique
keyHash String
lastUsedAt DateTime?
revokedAt DateTime?
createdAt DateTime @default(now())
@@index([companyId])
@@map("company_api_keys")
}
model Subscription {
id String @id @default(cuid())
companyId String @unique
@@ -1301,6 +1316,7 @@ model Reservation {
photos ReservationPhoto[]
review Review?
complaints Complaint[]
publicAccess ReservationPublicAccess[]
damageChargeAmount Int?
damageChargeNote String?
extras Json?
@@ -1315,6 +1331,37 @@ model Reservation {
@@map("reservations")
}
model ReservationPublicAccess {
id String @id @default(cuid())
reservationId String
reservation Reservation @relation(fields: [reservationId], references: [id], onDelete: Cascade)
tokenHash String @unique
expiresAt DateTime
usedAt DateTime?
revokedAt DateTime?
createdAt DateTime @default(now())
@@index([reservationId])
@@map("reservation_public_access")
}
model WebhookEvent {
id String @id @default(cuid())
provider String
providerEventId String
eventType String
status String
payloadHash String
errorMessage String?
receivedAt DateTime @default(now())
processedAt DateTime?
@@unique([provider, providerEventId])
@@index([provider, status])
@@map("webhook_events")
}
model RentalPayment {
id String @id @default(cuid())
companyId String
@@ -1746,8 +1793,9 @@ model AdminUser {
passwordResetToken String? @unique
passwordResetExpiresAt DateTime?
auditLogs AuditLog[]
permissions AdminPermission[]
auditLogs AuditLog[]
permissions AdminPermission[]
recoveryCodes AdminRecoveryCode[]
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
@@ -1766,6 +1814,19 @@ model AdminPermission {
@@map("admin_permissions")
}
model AdminRecoveryCode {
id String @id @default(cuid())
adminUserId String
adminUser AdminUser @relation(fields: [adminUserId], references: [id], onDelete: Cascade)
codeHash String
usedAt DateTime?
createdAt DateTime @default(now())
@@index([adminUserId, usedAt])
@@map("admin_recovery_codes")
}
model AuditLog {
id String @id @default(cuid())
adminUserId String