Sync LMS backend source
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
CREATE TABLE "course_week_modules" (
|
||||
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
|
||||
"week_id" UUID NOT NULL,
|
||||
"sort_order" INTEGER NOT NULL,
|
||||
"category" TEXT NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"folder_name" TEXT NOT NULL,
|
||||
"template_repository_url" TEXT,
|
||||
"docker_image" TEXT,
|
||||
"created_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updated_at" TIMESTAMPTZ(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "course_week_modules_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX "course_week_modules_week_id_folder_name_key" ON "course_week_modules"("week_id", "folder_name");
|
||||
CREATE UNIQUE INDEX "course_week_modules_week_id_sort_order_key" ON "course_week_modules"("week_id", "sort_order");
|
||||
CREATE INDEX "course_week_modules_week_id_idx" ON "course_week_modules"("week_id");
|
||||
|
||||
ALTER TABLE "course_week_modules"
|
||||
ADD CONSTRAINT "course_week_modules_week_id_fkey"
|
||||
FOREIGN KEY ("week_id") REFERENCES "course_weeks"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
COMMENT ON TABLE "course_week_modules" IS '주차별 개발 스튜디오 모듈 목록.';
|
||||
COMMENT ON COLUMN "course_week_modules"."folder_name" IS '관리자 템플릿 또는 로컬 캐시의 원본 모듈 폴더명.';
|
||||
COMMENT ON COLUMN "course_week_modules"."template_repository_url" IS '추후 Gitea 템플릿 저장소 연동 시 사용할 원본 repo URL.';
|
||||
COMMENT ON COLUMN "course_week_modules"."docker_image" IS '모듈 실행에 사용할 Docker 이미지.';
|
||||
|
||||
WITH target_week AS (
|
||||
SELECT w."id" AS week_id
|
||||
FROM "course_weeks" w
|
||||
JOIN "courses" c ON c."id" = w."course_id"
|
||||
WHERE c."slug" = 'futuredrive-autonomy-basic' AND w."week" = 3
|
||||
),
|
||||
seed(sort_order, category, name, folder_name) AS (
|
||||
VALUES
|
||||
(1, 'Gui', 'AW-Rviz', '[furive-gui]AW-Rviz_v1.0.0_ws'),
|
||||
(2, 'Map', 'AW-SampleMap', '[furive-map]AW-SampleMap_v1.0.0_ws'),
|
||||
(3, 'Simulator', 'AW-PlanningSim', '[furive-simulator]AW-PlanningSim_v1.0.0_ws'),
|
||||
(4, 'Map', 'DGIST-Campus', '[furive-map]DGIST-Campus_v1.0.0_ws'),
|
||||
(5, 'Planning', 'AW-Planning', '[furive-planning]AW-Planning_v1.0.0_ws'),
|
||||
(6, 'Bag', 'AW-SampleBag', '[furive-bag]AW-SampleBag_v1.0.0_ws'),
|
||||
(7, 'Perception', 'AW-Perception', '[furive-perception]AW-Perception_v1.0.0_ws'),
|
||||
(8, 'Sensing', 'test2', '[furive-sensing]test2_v1.0.0_ws'),
|
||||
(9, 'Localization', 'AW-Localization', '[furive-localization]AW-Localization_v1.0.0_ws'),
|
||||
(10, 'System', 'AW-System', '[furive-system]AW-System_v1.0.0_ws'),
|
||||
(11, 'Vehicle', 'AW-TestSampleVehicle', '[furive-vehicle]AW-TestSampleVehicle_v1.0.0_ws'),
|
||||
(12, 'Module', 'vehicle-f1', 'vehicle-f1_v1.0.0_ws'),
|
||||
(13, 'Vehicle', 'AW-SampleVehicle', '[furive-vehicle]AW-SampleVehicle_v1.0.0_ws'),
|
||||
(14, 'Control', 'AW-Control', '[furive-control]AW-Control_v1.0.0_ws'),
|
||||
(15, 'Map', 'AW-SampleMapRosBag', '[furive-map]AW-SampleMapRosBag_v1.0.0_ws'),
|
||||
(16, 'Sensing', 'AW-SampleSensor', '[furive-sensing]AW-SampleSensor_v1.0.0_ws')
|
||||
)
|
||||
INSERT INTO "course_week_modules" ("week_id", "sort_order", "category", "name", "folder_name")
|
||||
SELECT target_week.week_id, seed.sort_order, seed.category, seed.name, seed.folder_name
|
||||
FROM target_week
|
||||
CROSS JOIN seed
|
||||
ON CONFLICT ("week_id", "folder_name") DO UPDATE
|
||||
SET "sort_order" = EXCLUDED."sort_order",
|
||||
"category" = EXCLUDED."category",
|
||||
"name" = EXCLUDED."name",
|
||||
"updated_at" = CURRENT_TIMESTAMP;
|
||||
Reference in New Issue
Block a user