Files
RoggioApp/node_modules/.prisma/client/schema.prisma
T
2026-04-26 19:42:42 +02:00

200 lines
7.1 KiB
Plaintext
Executable File

generator client {
provider = "prisma-client-js"
}
datasource db {
provider = "postgresql"
url = "postgresql://roggio:roggio_secret@192.168.20.252:5432/roggiodb"
}
model Unit {
id String @id @default(uuid())
name String @db.VarChar(255)
description String?
parentId String?
traits Json @default("{}")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
parent Unit? @relation("UnitHierarchy", fields: [parentId], references: [id])
children Unit[] @relation("UnitHierarchy")
}
model Person {
id String @id @default(uuid())
firstName String @db.VarChar(100)
lastName String @db.VarChar(100)
email String? @unique @db.VarChar(255)
phone String? @db.VarChar(50)
ssoId String? @unique @db.VarChar(255)
traits Json @default("{}")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
groupMemberships GroupMembership[]
}
model Group {
id String @id @default(uuid())
name String @db.VarChar(255)
traits Json @default("{}")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
members GroupMembership[]
}
model GroupMembership {
id String @id @default(uuid())
personId String
groupId String
role String @db.VarChar(50)
group Group @relation(fields: [groupId], references: [id])
person Person @relation(fields: [personId], references: [id])
@@unique([personId, groupId, role])
}
model Event {
id String @id @default(uuid())
type String @db.VarChar(50)
status String @db.VarChar(50)
startTime DateTime
endTime DateTime?
targetUnitId String?
targetGroupId String?
targetPersonId String?
payload Json @default("{}")
parentEventId String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model cities {
id BigInt @id @default(autoincrement())
name String @db.VarChar(255)
state_id BigInt
state_code String @db.VarChar(255)
country_id BigInt
country_code String @db.Char(2)
type String? @db.VarChar(191)
level Int?
parent_id BigInt?
latitude Decimal @db.Decimal(10, 8)
longitude Decimal @db.Decimal(11, 8)
native String? @db.VarChar(255)
population BigInt?
timezone String? @db.VarChar(255)
translations String?
created_at DateTime @default(dbgenerated("'2014-01-01 12:01:01'::timestamp without time zone")) @db.Timestamp(6)
updated_at DateTime @default(now()) @db.Timestamp(6)
flag Int @default(1) @db.SmallInt
wikiDataId String? @db.VarChar(255)
countries countries @relation(fields: [country_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
states states @relation(fields: [state_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
@@index([country_id])
@@index([state_id])
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model countries {
id BigInt @id @default(autoincrement())
name String @db.VarChar(100)
iso3 String? @db.Char(3)
numeric_code String? @db.Char(3)
iso2 String? @db.Char(2)
phonecode String? @db.VarChar(255)
capital String? @db.VarChar(255)
currency String? @db.VarChar(255)
currency_name String? @db.VarChar(255)
currency_symbol String? @db.VarChar(255)
tld String? @db.VarChar(255)
native String? @db.VarChar(255)
population BigInt?
gdp BigInt?
region String? @db.VarChar(255)
region_id BigInt?
subregion String? @db.VarChar(255)
subregion_id BigInt?
nationality String? @db.VarChar(255)
area_sq_km Float?
postal_code_format String? @db.VarChar(255)
postal_code_regex String? @db.VarChar(255)
timezones String?
translations String?
latitude Decimal? @db.Decimal(10, 8)
longitude Decimal? @db.Decimal(11, 8)
emoji String? @db.VarChar(191)
emojiU String? @db.VarChar(191)
created_at DateTime? @db.Timestamp(6)
updated_at DateTime @default(now()) @db.Timestamp(6)
flag Int @default(1) @db.SmallInt
wikiDataId String? @db.VarChar(255)
cities cities[]
states states[]
@@index([region_id])
@@index([subregion_id])
}
/// This model or at least one of its fields has comments in the database, and requires an additional setup for migrations: Read more: https://pris.ly/d/database-comments
model states {
id BigInt @id @default(autoincrement())
name String @db.VarChar(255)
country_id BigInt
country_code String @db.Char(2)
fips_code String? @db.VarChar(255)
iso2 String? @db.VarChar(255)
iso3166_2 String? @db.VarChar(10)
type String? @db.VarChar(191)
level Int?
parent_id BigInt?
native String? @db.VarChar(255)
latitude Decimal? @db.Decimal(10, 8)
longitude Decimal? @db.Decimal(11, 8)
timezone String? @db.VarChar(255)
translations String?
created_at DateTime? @db.Timestamp(6)
updated_at DateTime @default(now()) @db.Timestamp(6)
flag Int @default(1) @db.SmallInt
wikiDataId String? @db.VarChar(255)
population String? @db.VarChar(255)
cities cities[]
countries countries @relation(fields: [country_id], references: [id], onDelete: NoAction, onUpdate: NoAction)
@@index([country_id])
}
// ============================================================================
// ADRESSEN (Shared Locations)
// ============================================================================
model Address {
id String @id @default(uuid())
street String @db.VarChar(255)
streetNo String? @db.VarChar(50)
postalCode String? @db.VarChar(50)
cityId Int?
stateId Int?
countryId Int?
rawCity String? @db.VarChar(255)
rawCountry String? @db.VarChar(255)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
// ============================================================================
// DER VAULT (Logisch getrennt - Später On-Premise)
// ============================================================================
model VaultData {
id String @id @default(uuid())
entityType String @db.VarChar(50)
entityId String
// Die sensiblen Daten (sollten auf App-Ebene verschlüsselt werden)
secureData String @db.Text
createdAt DateTime @default(now())
}