feat: support per-provider agent settings and environment-aware analysis

This commit is contained in:
2026-10-20 11:36:28 +09:00
parent ea6ff6997f
commit 94c17ac50d
17 changed files with 452 additions and 56 deletions
@@ -0,0 +1,5 @@
-- Preserve the existing provider, credential, and explicit enabled state.
-- Providers without a saved row remain disabled by default.
DROP INDEX "course_ai_settings_course_id_key";
CREATE UNIQUE INDEX "course_ai_settings_course_id_provider_key"
ON "course_ai_settings"("course_id", "provider");
+3 -2
View File
@@ -46,7 +46,7 @@ model User {
model CourseAiSetting {
id String @id @default(uuid()) @db.Uuid
courseId String @unique @map("course_id") @db.Uuid
courseId String @map("course_id") @db.Uuid
enabled Boolean @default(false)
provider String @default("OPENAI")
model String
@@ -56,6 +56,7 @@ model CourseAiSetting {
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
@@unique([courseId, provider])
@@index([enabled])
@@map("course_ai_settings")
}
@@ -191,7 +192,7 @@ model Course {
submissionScores SubmissionScore[]
studentGroups StudentGroup[]
submissionTotalScores SubmissionTotalScore[]
aiSetting CourseAiSetting?
aiSettings CourseAiSetting[]
@@index([isActive])
@@index([teacherId])