model UserConfig {
id Int @id @default(autoincrement())
userId Int @unique
preferences Preferences?
accountSettings AccountSettings?
}
model Preferences {
id Int @id @default(autoincrement())
userConfigId Int @unique
notificationSettings NotificationSettings[]
themeSettings ThemeSettings?
userConfig UserConfig @relation(fields: [userConfigId], references: [id], onDelete: Cascade)
}
model NotificationSettings {
id Int @id @default(autoincrement())
type String // "EMAIL" | "SMS"
preferencesId Int
emailSettings EmailSettings?
preferences Preferences @relation(fields: [preferencesId], references: [id], onDelete: Cascade)
}
model EmailSettings {
id Int @id @default(autoincrement())
email String
notificationSettingsId Int @unique
notificationSettings NotificationSettings @relation(fields: [notificationSettingsId], references: [id], onDelete: Cascade)
}
model ThemeSettings {
id Int @id @default(autoincrement())
theme String
preferencesId Int @unique
preferences Preferences @relation(fields: [preferencesId], references: [id], onDelete: Cascade)
}
model AccountSettings {
id Int @id @default(autoincrement())
userConfigId Int @unique
privacySettings PrivacySettings[]
userConfig UserConfig @relation(fields: [userConfigId], references: [id], onDelete: Cascade)
}
model PrivacySettings {
id Int @id @default(autoincrement())
setting String
accountSettingsId Int
accountSettings AccountSettings @relation(fields: [accountSettingsId], references: [id], onDelete: Cascade)
}
model UserConfig {
id Int @id @default(autoincrement())
userId Int @unique
preferences Preferences?
accountSettings AccountSettings?
}
model Preferences {
id Int @id @default(autoincrement())
userConfigId Int @unique
notificationSettings NotificationSettings[]
themeSettings ThemeSettings?
userConfig UserConfig @relation(fields: [userConfigId], references: [id], onDelete: Cascade)
}
model NotificationSettings {
id Int @id @default(autoincrement())
type String // "EMAIL" | "SMS"
preferencesId Int
emailSettings EmailSettings?
preferences Preferences @relation(fields: [preferencesId], references: [id], onDelete: Cascade)
}
model EmailSettings {
id Int @id @default(autoincrement())
email String
notificationSettingsId Int @unique
notificationSettings NotificationSettings @relation(fields: [notificationSettingsId], references: [id], onDelete: Cascade)
}
model ThemeSettings {
id Int @id @default(autoincrement())
theme String
preferencesId Int @unique
preferences Preferences @relation(fields: [preferencesId], references: [id], onDelete: Cascade)
}
model AccountSettings {
id Int @id @default(autoincrement())
userConfigId Int @unique
privacySettings PrivacySettings[]
userConfig UserConfig @relation(fields: [userConfigId], references: [id], onDelete: Cascade)
}
model PrivacySettings {
id Int @id @default(autoincrement())
setting String
accountSettingsId Int
accountSettings AccountSettings @relation(fields: [accountSettingsId], references: [id], onDelete: Cascade)
}