feat: add course AI agent backend
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
CREATE TABLE "course_ai_settings" (
|
||||
"id" UUID NOT NULL,
|
||||
"course_id" UUID NOT NULL,
|
||||
"enabled" BOOLEAN NOT NULL DEFAULT false,
|
||||
"provider" TEXT NOT NULL DEFAULT 'OPENAI',
|
||||
"model" TEXT NOT NULL,
|
||||
"encrypted_api_key" TEXT,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMPTZ(3) NOT NULL,
|
||||
CONSTRAINT "course_ai_settings_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX "course_ai_settings_course_id_key" ON "course_ai_settings"("course_id");
|
||||
CREATE INDEX "course_ai_settings_enabled_idx" ON "course_ai_settings"("enabled");
|
||||
|
||||
ALTER TABLE "course_ai_settings"
|
||||
ADD CONSTRAINT "course_ai_settings_course_id_fkey"
|
||||
FOREIGN KEY ("course_id") REFERENCES "courses"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -43,6 +43,21 @@ model User {
|
||||
@@map("users")
|
||||
}
|
||||
|
||||
model CourseAiSetting {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
courseId String @unique @map("course_id") @db.Uuid
|
||||
enabled Boolean @default(false)
|
||||
provider String @default("OPENAI")
|
||||
model String
|
||||
encryptedApiKey String? @map("encrypted_api_key")
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
|
||||
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@index([enabled])
|
||||
@@map("course_ai_settings")
|
||||
}
|
||||
|
||||
model StudentEnrollment {
|
||||
id String @id @default(uuid()) @db.Uuid
|
||||
userId String @map("user_id") @db.Uuid
|
||||
@@ -173,6 +188,7 @@ model Course {
|
||||
submissionScores SubmissionScore[]
|
||||
studentGroups StudentGroup[]
|
||||
submissionTotalScores SubmissionTotalScore[]
|
||||
aiSetting CourseAiSetting?
|
||||
|
||||
@@index([isActive])
|
||||
@@index([teacherId])
|
||||
|
||||
Reference in New Issue
Block a user