88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
// This is your Prisma schema file,
 | 
						|
// learn more about it in the docs: https://pris.ly/d/prisma-schema
 | 
						|
 | 
						|
generator client {
 | 
						|
    provider = "prisma-client-js"
 | 
						|
}
 | 
						|
 | 
						|
datasource db {
 | 
						|
    provider = "mysql"
 | 
						|
    // NOTE: When using mysql or sqlserver, uncomment the @db.Text annotations in model Account below
 | 
						|
    // Further reading:
 | 
						|
    // https://next-auth.js.org/adapters/prisma#create-the-prisma-schema
 | 
						|
    // https://www.prisma.io/docs/reference/api-reference/prisma-schema-reference#string
 | 
						|
    url      = env("DATABASE_URL")
 | 
						|
}
 | 
						|
 | 
						|
model Post {
 | 
						|
    id        Int      @id @default(autoincrement())
 | 
						|
    name      String
 | 
						|
    createdAt DateTime @default(now())
 | 
						|
    updatedAt DateTime @updatedAt
 | 
						|
 | 
						|
    createdBy   User   @relation(fields: [createdById], references: [id])
 | 
						|
    createdById String
 | 
						|
 | 
						|
    @@index([name])
 | 
						|
}
 | 
						|
 | 
						|
// Necessary for Next auth
 | 
						|
model Account {
 | 
						|
    id                       String  @id @default(cuid())
 | 
						|
    userId                   String
 | 
						|
    type                     String
 | 
						|
    provider                 String
 | 
						|
    providerAccountId        String
 | 
						|
    refresh_token            String? @db.Text
 | 
						|
    access_token             String? // @db.Text
 | 
						|
    expires_at               Int?
 | 
						|
    token_type               String?
 | 
						|
    scope                    String?
 | 
						|
    id_token                 String? // @db.Text
 | 
						|
    session_state            String?
 | 
						|
    user                     User    @relation(fields: [userId], references: [id], onDelete: Cascade)
 | 
						|
    refresh_token_expires_in Int?
 | 
						|
 | 
						|
    @@unique([provider, providerAccountId])
 | 
						|
}
 | 
						|
 | 
						|
model Session {
 | 
						|
    id           String   @id @default(cuid())
 | 
						|
    sessionToken String   @unique
 | 
						|
    userId       String
 | 
						|
    expires      DateTime
 | 
						|
    user         User     @relation(fields: [userId], references: [id], onDelete: Cascade)
 | 
						|
}
 | 
						|
 | 
						|
model User {
 | 
						|
    id            String    @id @default(cuid())
 | 
						|
    name          String?
 | 
						|
    email         String?   @unique
 | 
						|
    emailVerified DateTime?
 | 
						|
    image         String?
 | 
						|
    accounts      Account[]
 | 
						|
    sessions      Session[]
 | 
						|
    posts         Post[]
 | 
						|
    files         File[]    // Relation to the File model
 | 
						|
}
 | 
						|
 | 
						|
model VerificationToken {
 | 
						|
    identifier String
 | 
						|
    token      String   @unique
 | 
						|
    expires    DateTime
 | 
						|
 | 
						|
    @@unique([identifier, token])
 | 
						|
}
 | 
						|
 | 
						|
model File {
 | 
						|
    id         String   @id @default(cuid())
 | 
						|
    url        String
 | 
						|
    name       String
 | 
						|
    size       Int      // Size in bytes
 | 
						|
    extension  String
 | 
						|
    uploadDate DateTime @default(now())
 | 
						|
 | 
						|
    uploadedBy User?    @relation(fields: [uploadedById], references: [id], onDelete: SetNull)
 | 
						|
    uploadedById String?
 | 
						|
}
 |