481 lines
12 KiB
Plaintext
481 lines
12 KiB
Plaintext
// This is your Prisma schema file,
|
|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
|
|
|
|
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
|
|
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
|
|
|
|
generator client {
|
|
provider = "prisma-client-js"
|
|
previewFeatures = ["postgresqlExtensions", "fieldReference"]
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
url = env("DATABASE_URL")
|
|
extensions = [pgcrypto]
|
|
}
|
|
|
|
model TourSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
id String?
|
|
check String?
|
|
createTime String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
empfangenVonId String?
|
|
endgen String? // yyyy-MM-dd
|
|
serienId String?
|
|
serienKategorName String?
|
|
serienKategorie String?
|
|
zadStatus String?
|
|
abrDate String? // yyyy-MM-dd
|
|
abrNum String?
|
|
abrTime String? // HH:mm
|
|
|
|
ausrueckZeit String? // HH:mm 'Europe/Berlin'
|
|
startTime String? // HH:mm 'Europe/Berlin' (is after ausrueckZeit)
|
|
startDate String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
date String? // yyyy-MM-dd
|
|
date_iso String? // ISO 8601 String
|
|
dauergenehmigung String?
|
|
direction String?
|
|
distanceValue String? // meters (probably int)
|
|
besetztKm String? // kilometers (float)
|
|
gefahren String? // Boolean as number
|
|
gesamtPreis String? // float
|
|
infektion String? // Boolean as number
|
|
itDesc String?
|
|
itKrz String?
|
|
itName String?
|
|
kkId String?
|
|
krankenkasse String?
|
|
patId String?
|
|
patName String?
|
|
patSurname String?
|
|
patStreet String?
|
|
patZip String?
|
|
patCity String?
|
|
startInstitution String?
|
|
startStreet String?
|
|
startZip String?
|
|
startCity String?
|
|
targetInstitution String?
|
|
targetStreet String?
|
|
targetZip String?
|
|
targetCity String?
|
|
transportKrz String?
|
|
transportName String?
|
|
transportart String? // ID
|
|
verordnungsId String?
|
|
verordnungsName String?
|
|
type String?
|
|
|
|
startBegin String? // HH:mm 'Europe/Berlin'
|
|
startEnd String? // HH:mm 'Europe/Berlin'
|
|
frei String? // HH:mm 'Europe/Berlin'
|
|
ziel String? // HH:mm 'Europe/Berlin'
|
|
zielBegin String? // HH:mm 'Europe/Berlin'
|
|
endTime String? // HH:mm 'Europe/Berlin'
|
|
endDate String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
|
|
einsatzNummer String?
|
|
carName String?
|
|
carNo String? // ID
|
|
beifahrerName String?
|
|
beifahrer String? // ID
|
|
fahrerName String?
|
|
fahrer String? // ID
|
|
|
|
color String? // Hex rgb
|
|
}
|
|
|
|
model EmployeeDispoLiveSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
id String?
|
|
pScheinAblaufDatum String? // yyyy-MM-dd
|
|
name String?
|
|
surname String?
|
|
persId String?
|
|
importPersId String? // Personal ID aus Dyflexis
|
|
qualifikation String? // ID
|
|
}
|
|
|
|
model AttendanceRegistrationSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
attendanceRegistrationId String?
|
|
employeeId String?
|
|
personnelNumber String?
|
|
dateTime String? // ISO 8601 String with timezone
|
|
event String?
|
|
}
|
|
|
|
model PlannedTimeSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
id String?
|
|
user_id String?
|
|
firstname String?
|
|
surname String?
|
|
department_id String?
|
|
department_name String?
|
|
start_date String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
end_date String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
pauze String?
|
|
duration String?
|
|
deleted String?
|
|
mark String?
|
|
}
|
|
|
|
model WorkTimeSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
id String?
|
|
user_id String?
|
|
firstname String?
|
|
surname String?
|
|
department_id String?
|
|
department_name String?
|
|
start_date String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
end_date String? // yyyy-MM-dd HH:mm:ss 'Europe/Berlin'
|
|
pauze String?
|
|
duration String?
|
|
}
|
|
|
|
model EmployeeDyflexisSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
id String?
|
|
firstname String?
|
|
surname String?
|
|
contract_id String?
|
|
contract_start String? // yyyy-MM-dd
|
|
contract_end String? // yyyy-MM-dd
|
|
contract_hours_week String? // Float string
|
|
contract_salary_hour String? // Float string
|
|
}
|
|
|
|
model PatientSource {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
insertedAt DateTime @default(now())
|
|
jobId String
|
|
|
|
id String?
|
|
surname String?
|
|
name String?
|
|
street String?
|
|
zip String?
|
|
city String?
|
|
|
|
birthday String?
|
|
kkId String?
|
|
krankenkasse String?
|
|
pflegestufe String?
|
|
behinderung1 String?
|
|
behinderung2 String?
|
|
}
|
|
|
|
model TourStaging {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
|
|
id String?
|
|
done Boolean?
|
|
direction String?
|
|
carName String?
|
|
operationId String?
|
|
|
|
driverId String?
|
|
driverName String?
|
|
codriverId String?
|
|
codriverName String?
|
|
|
|
patientId String?
|
|
patientName String?
|
|
patientSurname String?
|
|
patientStreet String?
|
|
patientZip String?
|
|
patientCity String?
|
|
healthInsurance String?
|
|
healthInsuranceNumber String?
|
|
|
|
type String?
|
|
category String?
|
|
transportType String?
|
|
ordinanceType String?
|
|
rangeEndDate DateTime?
|
|
|
|
startInstitution String?
|
|
startStreet String?
|
|
startZip String?
|
|
startCity String?
|
|
targetInstitution String?
|
|
targetStreet String?
|
|
targetZip String?
|
|
targetCity String?
|
|
|
|
startDate DateTime?
|
|
|
|
check Int @default(0)
|
|
occupiedKm Float?
|
|
totalKm Float?
|
|
|
|
startBegin String?
|
|
startEnd String?
|
|
target String?
|
|
targetBegin String?
|
|
empty String?
|
|
|
|
hasInfection Boolean @default(false)
|
|
infectionName String?
|
|
|
|
revenueDispoLive Float?
|
|
billDate DateTime?
|
|
billNumber String?
|
|
revenue Float @default(0)
|
|
revenueDeviation Float @default(0)
|
|
consumptionCosts Float @default(0)
|
|
|
|
createdAt DateTime?
|
|
}
|
|
|
|
model PatientStaging {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
|
|
id String?
|
|
surname String?
|
|
name String?
|
|
street String?
|
|
zip String?
|
|
city String?
|
|
|
|
birthday DateTime?
|
|
healthinsuranceId String?
|
|
healthinsurance String?
|
|
careDegree String?
|
|
disabilityMark1 String?
|
|
disabilityMark2 String?
|
|
}
|
|
|
|
model AttendanceRegistrationStaging {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
|
|
attendanceRegistrationId Int
|
|
employeeId Int
|
|
dateTime DateTime
|
|
event String
|
|
}
|
|
|
|
model PlannedTimeStaging {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
|
|
id Int
|
|
employeeId Int
|
|
firstname String?
|
|
surname String?
|
|
departmentName String?
|
|
startDate DateTime
|
|
endDate DateTime
|
|
deleted Boolean
|
|
mark String?
|
|
}
|
|
|
|
model WorkTimeStaging {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
|
|
id Int
|
|
employeeId Int
|
|
firstname String
|
|
surname String
|
|
departmentName String?
|
|
startDate DateTime
|
|
endDate DateTime
|
|
}
|
|
|
|
model EmployeeStaging {
|
|
internalId String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
|
|
id Int
|
|
firstname String
|
|
surname String
|
|
contractStart DateTime
|
|
contractEnd DateTime
|
|
contractHoursWeek Float
|
|
contractSalaryHour Float
|
|
personTransportCertificate DateTime?
|
|
qualification String?
|
|
}
|
|
|
|
model Tour {
|
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
done Boolean
|
|
direction String
|
|
carName String?
|
|
operationId String @unique
|
|
|
|
driverId String?
|
|
driverName String?
|
|
codriverId String?
|
|
codriverName String?
|
|
|
|
patientId String?
|
|
patientName String?
|
|
patientSurname String?
|
|
patientStreet String?
|
|
patientZip String?
|
|
patientCity String?
|
|
healthInsurance String?
|
|
healthInsuranceNumber String?
|
|
|
|
type String?
|
|
category String?
|
|
transportType String?
|
|
ordinanceType String?
|
|
rangeEndDate DateTime?
|
|
|
|
startInstitution String?
|
|
startStreet String?
|
|
startZip String?
|
|
startCity String?
|
|
targetInstitution String?
|
|
targetStreet String?
|
|
targetZip String?
|
|
targetCity String?
|
|
|
|
startDate DateTime
|
|
|
|
check Int @default(0)
|
|
occupiedKm Float?
|
|
totalKm Float?
|
|
|
|
startBegin String?
|
|
startEnd String?
|
|
target String?
|
|
targetBegin String?
|
|
empty String?
|
|
|
|
hasInfection Boolean @default(false)
|
|
infectionName String?
|
|
|
|
revenueDispoLive Float?
|
|
billDate DateTime?
|
|
billNumber String?
|
|
|
|
revenue Float @default(0)
|
|
consumptionCosts Float @default(0)
|
|
revenueDeviation Float @default(0)
|
|
|
|
createdAt DateTime?
|
|
deletedAt DateTime?
|
|
Ticket Ticket? @relation(fields: [ticketId], references: [id])
|
|
ticketId String? @db.Uuid
|
|
}
|
|
|
|
model Patient {
|
|
id String @id
|
|
surname String?
|
|
name String?
|
|
street String?
|
|
zip String?
|
|
city String?
|
|
|
|
birthday DateTime?
|
|
healthinsuranceId String?
|
|
healthinsurance String?
|
|
careDegree String?
|
|
disabilityMark1 String?
|
|
disabilityMark2 String?
|
|
}
|
|
|
|
enum TicketState {
|
|
CREATED
|
|
APPROVAL_REQUIRED
|
|
READY
|
|
DONE
|
|
BILLABLE
|
|
ARCHIVED
|
|
}
|
|
|
|
enum TicketValidationState {
|
|
CREATED
|
|
USER_INTERACTION_REQUIRED
|
|
TD_UNCERTAIN
|
|
DOCUMENTS_MISSING
|
|
ARCHIVED
|
|
}
|
|
|
|
enum ApprovalState {
|
|
UNKNOWN
|
|
FREE
|
|
REQUIRED
|
|
REQUESTED
|
|
APPROVED
|
|
}
|
|
|
|
model Ticket {
|
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
tours Tour[]
|
|
state TicketStateHistory[]
|
|
currentState TicketValidationState
|
|
notes String[]
|
|
errors String[]
|
|
isUrgent Boolean @default(false)
|
|
urgency DateTime @default("2099-12-31T23:59:59.999Z")
|
|
approvalState ApprovalState?
|
|
documentInfo Json? @default("{\"approval\": {\"isNeeded\": null, \"whoRequested\": \"\",\"answeredFrom\": \"\"},\"tdLocation\": \"\"}")
|
|
createdAt DateTime @default(now())
|
|
}
|
|
|
|
model TicketStateHistory {
|
|
id String @id @default(dbgenerated("gen_random_uuid()")) @db.Uuid
|
|
state TicketValidationState
|
|
createdAt DateTime @default(now())
|
|
|
|
Ticket Ticket @relation(fields: [ticketId], references: [id])
|
|
ticketId String @db.Uuid
|
|
}
|
|
|
|
model AttendanceRegistration {
|
|
attendanceRegistrationId Int @id
|
|
employeeId Int
|
|
personnelNumber String
|
|
dateTime DateTime
|
|
event String
|
|
}
|
|
|
|
model WorkTime {
|
|
id String @id
|
|
userId String
|
|
firstname String
|
|
surname String
|
|
startDate DateTime?
|
|
endDate DateTime?
|
|
department String?
|
|
pause Int
|
|
duration Int
|
|
}
|
|
|
|
model PlannedTime {
|
|
id String @id
|
|
userId String
|
|
firstname String?
|
|
surname String?
|
|
startDate DateTime?
|
|
endDate DateTime?
|
|
department String?
|
|
pause Int
|
|
duration Int
|
|
note String?
|
|
}
|