fix architecture and write new tests
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user