67 lines
1.7 KiB
Plaintext
67 lines
1.7 KiB
Plaintext
// Prisma 7 (rust-free `prisma-client` generator + driver adapter).
|
|
// Client is generated into src/generated/prisma (gitignored) and imported
|
|
// from "../generated/prisma/client".
|
|
|
|
generator client {
|
|
provider = "prisma-client"
|
|
output = "../src/generated/prisma"
|
|
}
|
|
|
|
datasource db {
|
|
provider = "postgresql"
|
|
}
|
|
|
|
enum ProjectSize {
|
|
Big
|
|
MediumSized
|
|
Small
|
|
}
|
|
|
|
model Project {
|
|
id String @id @default(cuid())
|
|
name String
|
|
label String // free-type string, e.g. "Dev Tool", "SaaS"
|
|
size ProjectSize @default(MediumSized)
|
|
imageUrl String? // shown fully, nothing overlapping
|
|
link String
|
|
linkIsDemo Boolean @default(false)
|
|
sourceCode String? // github or gitea link
|
|
description String
|
|
why String
|
|
note String? // free note, replaces old {color, content}
|
|
tags String[] // max 3 enforced in the API
|
|
loc Int? // manually provided line-of-code count
|
|
locEndpoint String? // URL the backend hits for a plaintext LoC number
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model WorkExperience {
|
|
id String @id @default(cuid())
|
|
company String
|
|
role String
|
|
fromDate DateTime
|
|
toDate DateTime? // null = Present
|
|
url String?
|
|
iconUrl String?
|
|
summary String
|
|
tags String[] // max 6 enforced in the API
|
|
sortIndex Int @default(0)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|
|
|
|
model Affiliate {
|
|
id String @id @default(cuid())
|
|
name String
|
|
link String
|
|
icon String
|
|
location String
|
|
provides String[]
|
|
good String[]
|
|
bad String[]
|
|
sortIndex Int @default(0)
|
|
createdAt DateTime @default(now())
|
|
updatedAt DateTime @updatedAt
|
|
}
|