Skip to content
Snippets Groups Projects
Select Git revision
  • febfc3f86f4b9ea9b3e42a3ceff66cf8d7b6c86b
  • main default protected
2 results

depart.fig

Blame
  • schema.prisma 1.62 KiB
    generator client {
        provider = "prisma-client-js"
    }
    
    datasource db {
        provider = "mysql"
        url      = env("DATABASE_URL")
    }
    
    model User {
        id        Int     @id @default(autoincrement())
        firstname String
        lastname  String?
        mail      String? @unique
        password  String?
        gitlabId  Int     @unique
        role      String?
        deleted   Boolean @default(false)
    
        assignments Assignment[]
        exercises   Exercise[]
    }
    
    model Assignment {
        name               String   @id
        gitlabId           Int
        gitlabLink         String
        gitlabCreationInfo Json     @db.Json
        gitlabLastInfo     Json     @db.Json
        gitlabLastInfoDate DateTime
        published          Boolean  @default(false)
    
        exercises Exercise[]
        staff     User[]
    }
    
    model Exercise {
        id                 String   @id @db.Char(36)
        assignmentName     String
        name               String
        secret             String   @unique @db.Char(36)
        gitlabId           Int
        gitlabLink         String
        gitlabCreationInfo Json     @db.Json
        gitlabLastInfo     Json     @db.Json
        gitlabLastInfoDate DateTime
    
        assignment Assignment @relation(fields: [assignmentName], references: [name], onDelete: NoAction, onUpdate: Cascade)
    
        members User[]
        results Result[]
    }
    
    model Result {
        exerciseId String   @db.Char(36)
        dateTime   DateTime @default(now())
        success    Boolean
        exitCode   Int
        commit     Json     @db.Json
        results    Json     @db.Json
        files      Json     @db.Json
    
        exercise Exercise @relation(fields: [exerciseId], references: [id], onDelete: Cascade, onUpdate: Cascade)
    
        @@id([exerciseId, dateTime])
    }