This commit is contained in:
2026-08-03 14:03:00 +09:00
parent 5e7cffa901
commit b7e910dcf7
24 changed files with 1081 additions and 111 deletions
+63
View File
@@ -31,6 +31,7 @@ model User {
platformControlSessions PlatformControlSession[]
platformControlQueueEntries PlatformControlQueueEntry[]
studioRepositories StudioRepository[]
savedMaps StudentSavedMap[]
submissionScores SubmissionScore[]
submissionTotalScores SubmissionTotalScore[]
@@ -156,6 +157,9 @@ model Course {
instructorCurriculumWeekOverrides InstructorCurriculumWeekOverride[]
environmentProfiles CourseEnvironmentProfile[]
visualizationSelections CourseWeekVisualizationPlatform[]
maps CourseMap[]
weekMaps CourseWeekMap[]
savedMaps StudentSavedMap[]
submissionScores SubmissionScore[]
submissionTotalScores SubmissionTotalScore[]
@@ -216,6 +220,63 @@ model CourseWeekVisualizationPlatform {
@@map("course_week_visualization_platforms")
}
model CourseMap {
id String @id @default(uuid()) @db.Uuid
courseId String @map("course_id") @db.Uuid
key String
name String
description String?
platformKey String @default("NAV2") @map("platform_key")
worldFile String @default("empty_world.world") @map("world_file")
viewerModel String @default("turtlebot3_world") @map("viewer_model")
layout Json @default("{\"version\":1,\"objects\":[]}")
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)
@@unique([courseId, key])
@@index([courseId, platformKey])
@@map("course_maps")
}
model CourseWeekMap {
id String @id @default(uuid()) @db.Uuid
courseId String @map("course_id") @db.Uuid
week Int
mapKey String @map("map_key")
sortOrder Int @default(0) @map("sort_order")
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)
@@unique([courseId, week, mapKey])
@@index([courseId, week])
@@map("course_week_maps")
}
model StudentSavedMap {
id String @id @default(uuid()) @db.Uuid
userId String @map("user_id") @db.Uuid
courseId String @map("course_id") @db.Uuid
week Int
name String
sourceMapKey String @map("source_map_key")
worldFile String @map("world_file")
viewerModel String @map("viewer_model")
yamlPath String @map("yaml_path")
pgmPath String @map("pgm_path")
previewPgm String? @map("preview_pgm")
databasePath String? @map("database_path")
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)
user User @relation(fields: [userId], references: [id], onDelete: Cascade)
course Course @relation(fields: [courseId], references: [id], onDelete: Cascade)
@@unique([userId, courseId, week, yamlPath])
@@index([userId, courseId, week, createdAt])
@@map("student_saved_maps")
}
model InstructorCurriculumSetting {
id String @id @default(uuid()) @db.Uuid
organizationId String? @map("organization_id") @db.Uuid
@@ -328,6 +389,7 @@ model PlatformControlSession {
endsAt DateTime @map("ends_at") @db.Timestamptz(3)
warningAt DateTime @map("warning_at") @db.Timestamptz(3)
warningSentAt DateTime? @map("warning_sent_at") @db.Timestamptz(3)
extensionCount Int @default(0) @map("extension_count")
releasedAt DateTime? @map("released_at") @db.Timestamptz(3)
endReason String? @map("end_reason")
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
@@ -448,6 +510,7 @@ model CourseWeekModule {
templateRepositoryUrl String? @map("template_repository_url")
sourceType String @default("GIT") @map("source_type")
prebuiltArtifacts Json @default("[]") @map("prebuilt_artifacts")
defaultParameters Json @default("[]") @map("default_parameters")
dockerImage String? @map("docker_image")
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(3)
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(3)