pendantator/api/db/schema.prisma

79 lines
2.4 KiB
Plaintext

// Don't forget to tell Prisma about your edits to this file using
// `yarn rw prisma migrate dev` or `yarn rw prisma db push`.
// `migrate` is like committing while `push` is for prototyping.
// Read more about both here:
// https://www.prisma.io/docs/orm/prisma-migrate
datasource db {
provider = "sqlite"
url = env("DATABASE_URL")
}
generator client {
provider = "prisma-client-js"
binaryTargets = "native"
}
// Define your own datamodels here and run `yarn redwood prisma migrate dev`
// to create migrations for them and apply to your dev DB.
model Account {
id String @id @default(cuid())
address ContactAddress @relation(fields: [contactAddressId], references: [id])
active Boolean @default(true) //Are we still supporting this pendant
// We will give a years(?) grace
PaidUp Boolean @default(true) //Have we received a subscription payment this month
contactAddressId String
User User? @relation(fields: [userId], references: [id])
userId String?
}
model ContactAddress {
id String @id @default(cuid())
Name String // name of person who is using the pendant
Address1 String
Address2 String
Address3 String
Town String
PostalCode String
Account Account[]
UserToContactAddress UserToContactAddress[]
}
model User {
id String @id @default(cuid())
userId String @unique
email String
hashedPassword String
salt String
resetToken String?
resetTokenExpiresAt DateTime?
accounts Account[]
roles Role[]
UserToContactAddress UserToContactAddress[]
}
model UserToContactAddress {
id Int @id
user User @relation(fields: [userId], references: [id])
address ContactAddress @relation(fields: [contactAddressId], references: [id])
userId String
contactAddressId String
}
model Role {
id String @id @default(cuid())
name String @unique
User User? @relation(fields: [userId], references: [id])
userId String?
}
model Setting {
id Int @id @default(autoincrement())
enabled Boolean
group String
name String
value String
}