feat(07-01): install DKV deps, add Prisma models, wire ScheduleModule + crypto export
- pnpm add imapflow@^1.4.3, pdf-parse@^2.4.5, xlsx@^0.18.5 to @tessera/api - Append DkvModuleConfig, DkvVehicleMaster, DkvInvoiceHistory, SmtpConfig models to schema.prisma (15 models total) - Add ScheduleModule.forRoot() to AppModule imports (prerequisite for DkvSchedulerService) - Export CalendarCryptoService from CalendarModule (needed by DkvModule + SettingsModule) - Create apps/api/src/dkv/dkv.types.ts with DkvVehicleBlock, DkvTransaction, InboxConfig, InboxEmail, InboxAttachment, ExportRow interfaces
This commit is contained in:
@@ -168,3 +168,66 @@ model CalendarSource {
|
||||
@@index([userId])
|
||||
@@index([tenantId])
|
||||
}
|
||||
|
||||
model DkvModuleConfig {
|
||||
id String @id @default(uuid())
|
||||
tenantId String @unique
|
||||
protocol String @default("imap") // 'imap' | 'exchange'
|
||||
host String?
|
||||
port Int?
|
||||
encryption String @default("ssl-tls") // 'none' | 'starttls' | 'ssl-tls'
|
||||
folder String @default("INBOX")
|
||||
senderFilter String?
|
||||
pollIntervalMin Int @default(60)
|
||||
isActive Boolean @default(false)
|
||||
exportRecipient String?
|
||||
vehicleFormatString String @default("{Marke}/{Modell}/{Kennzeichen}")
|
||||
encryptedInboxCreds String? // AES-256-GCM: JSON { username, password } encrypted
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@index([tenantId])
|
||||
}
|
||||
|
||||
model DkvVehicleMaster {
|
||||
id String @id @default(uuid())
|
||||
tenantId String
|
||||
kennzeichen String
|
||||
marke String
|
||||
modell String
|
||||
fahrer String // "Vorname Nachname"
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
@@unique([tenantId, kennzeichen])
|
||||
@@index([tenantId])
|
||||
}
|
||||
|
||||
model DkvInvoiceHistory {
|
||||
id String @id @default(uuid())
|
||||
tenantId String
|
||||
datumZeit DateTime @default(now())
|
||||
rechnungsnummer String
|
||||
anzahlFahrzeuge Int @default(0)
|
||||
anzahlTransaktionen Int @default(0)
|
||||
status String // 'Verarbeitet' | 'Fehler' | 'Versand fehlgeschlagen'
|
||||
errorMessage String?
|
||||
exportFilename String?
|
||||
createdAt DateTime @default(now())
|
||||
|
||||
@@index([tenantId])
|
||||
@@index([datumZeit])
|
||||
}
|
||||
|
||||
model SmtpConfig {
|
||||
id String @id @default(uuid())
|
||||
tenantId String @unique
|
||||
host String
|
||||
port Int @default(587)
|
||||
encryption String @default("starttls") // 'none' | 'starttls' | 'ssl-tls'
|
||||
username String?
|
||||
encryptedPassword String? // AES-256-GCM via CalendarCryptoService
|
||||
fromAddress String
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user