Sync LMS backend source

This commit is contained in:
2026-07-07 16:09:12 +09:00
commit 5a2ecd0fea
126 changed files with 22959 additions and 0 deletions
@@ -0,0 +1,82 @@
COMMENT ON TABLE "users" IS 'LMS 내부 사용자 기본 정보. 중앙 auth 사용자와 동기화해 앱별 데이터를 연결한다.';
COMMENT ON COLUMN "users"."id" IS 'LMS 사용자 고유 UUID.';
COMMENT ON COLUMN "users"."auth_user_id" IS '중앙 auth DB users.id와 매핑되는 사용자 UUID.';
COMMENT ON COLUMN "users"."email" IS '사용자 로그인 이메일.';
COMMENT ON COLUMN "users"."name" IS '사용자 표시 이름.';
COMMENT ON COLUMN "users"."createdAt" IS '사용자 데이터 생성 일시.';
COMMENT ON COLUMN "users"."updatedAt" IS '사용자 데이터 수정 일시.';
COMMENT ON TABLE "courses" IS 'LMS 강의 마스터. 소속과 강사 기준으로 전체 강의 정보를 관리한다.';
COMMENT ON COLUMN "courses"."id" IS '강의 고유 UUID.';
COMMENT ON COLUMN "courses"."slug" IS '강의 식별용 문자열 키.';
COMMENT ON COLUMN "courses"."title" IS '강의 제목.';
COMMENT ON COLUMN "courses"."subtitle" IS '강의 부제목.';
COMMENT ON COLUMN "courses"."description" IS '강의 설명.';
COMMENT ON COLUMN "courses"."organization_name" IS '강의를 운영하는 소속명.';
COMMENT ON COLUMN "courses"."teacher_id" IS '강의를 등록하거나 운영하는 강사 사용자 UUID.';
COMMENT ON COLUMN "courses"."is_active" IS '강의 활성 여부.';
COMMENT ON COLUMN "courses"."created_at" IS '강의 생성 일시.';
COMMENT ON COLUMN "courses"."updated_at" IS '강의 수정 일시.';
COMMENT ON TABLE "course_weeks" IS '강의별 주차 커리큘럼 정보.';
COMMENT ON COLUMN "course_weeks"."id" IS '주차 커리큘럼 고유 UUID.';
COMMENT ON COLUMN "course_weeks"."course_id" IS '소속 강의 UUID.';
COMMENT ON COLUMN "course_weeks"."week" IS '강의 내 주차 번호.';
COMMENT ON COLUMN "course_weeks"."title" IS '주차 제목.';
COMMENT ON COLUMN "course_weeks"."tags" IS '주차 상태 및 분류 태그 목록.';
COMMENT ON COLUMN "course_weeks"."progress" IS '주차 기준 진행률.';
COMMENT ON COLUMN "course_weeks"."state" IS '주차 상태. done, current, locked 등을 사용한다.';
COMMENT ON COLUMN "course_weeks"."duration" IS '예상 학습 시간 표시값.';
COMMENT ON COLUMN "course_weeks"."github" IS 'GitHub 제출 상태 표시값.';
COMMENT ON COLUMN "course_weeks"."overview" IS '주차 개요 설명.';
COMMENT ON COLUMN "course_weeks"."deliverable" IS '주차 제출 기준.';
COMMENT ON COLUMN "course_weeks"."created_at" IS '주차 커리큘럼 생성 일시.';
COMMENT ON COLUMN "course_weeks"."updated_at" IS '주차 커리큘럼 수정 일시.';
COMMENT ON TABLE "course_week_topics" IS '주차별 학습 주제와 상세 설명.';
COMMENT ON COLUMN "course_week_topics"."id" IS '주차 학습 주제 고유 UUID.';
COMMENT ON COLUMN "course_week_topics"."week_id" IS '소속 주차 커리큘럼 UUID.';
COMMENT ON COLUMN "course_week_topics"."title" IS '학습 주제 제목.';
COMMENT ON COLUMN "course_week_topics"."detail" IS '학습 주제 상세 설명.';
COMMENT ON COLUMN "course_week_topics"."sort_order" IS '주차 내 학습 주제 표시 순서.';
COMMENT ON TABLE "course_week_practices" IS '주차별 실습 내용.';
COMMENT ON COLUMN "course_week_practices"."id" IS '주차 실습 내용 고유 UUID.';
COMMENT ON COLUMN "course_week_practices"."week_id" IS '소속 주차 커리큘럼 UUID.';
COMMENT ON COLUMN "course_week_practices"."title" IS '실습 항목 제목.';
COMMENT ON COLUMN "course_week_practices"."description" IS '실습 항목 설명.';
COMMENT ON COLUMN "course_week_practices"."sort_order" IS '주차 내 실습 항목 표시 순서.';
COMMENT ON TABLE "platforms" IS '최고관리자가 등록하는 실습 플랫폼 마스터. 학교/기관별 개별 장비를 구분한다.';
COMMENT ON COLUMN "platforms"."id" IS '실습 플랫폼 고유 UUID.';
COMMENT ON COLUMN "platforms"."platform_key" IS '플랫폼 식별용 문자열 키. 기관과 장비를 구분할 수 있어야 한다.';
COMMENT ON COLUMN "platforms"."display_name" IS '화면에 표시할 플랫폼 이름.';
COMMENT ON COLUMN "platforms"."description" IS '플랫폼 설명.';
COMMENT ON COLUMN "platforms"."organization_name" IS '플랫폼을 소유하거나 운영하는 소속명.';
COMMENT ON COLUMN "platforms"."icon_key" IS '프론트엔드에서 사용할 아이콘 키.';
COMMENT ON COLUMN "platforms"."is_active" IS '플랫폼 활성 여부.';
COMMENT ON COLUMN "platforms"."created_at" IS '플랫폼 생성 일시.';
COMMENT ON COLUMN "platforms"."updated_at" IS '플랫폼 수정 일시.';
COMMENT ON TABLE "course_platforms" IS '강사가 강의에 사용할 플랫폼을 선택해 배정한 목록.';
COMMENT ON COLUMN "course_platforms"."id" IS '강의-플랫폼 배정 고유 UUID.';
COMMENT ON COLUMN "course_platforms"."course_id" IS '플랫폼을 배정한 강의 UUID.';
COMMENT ON COLUMN "course_platforms"."platform_id" IS '강의에 배정된 플랫폼 UUID.';
COMMENT ON COLUMN "course_platforms"."status" IS '플랫폼 사용 가능 상태 설명.';
COMMENT ON COLUMN "course_platforms"."action" IS '플랫폼 버튼에 표시할 작업명.';
COMMENT ON COLUMN "course_platforms"."state" IS '플랫폼 상태. ready, reserved, locked 등을 사용한다.';
COMMENT ON COLUMN "course_platforms"."sort_order" IS '강의 내 플랫폼 표시 순서.';
COMMENT ON COLUMN "course_platforms"."created_at" IS '강의-플랫폼 배정 생성 일시.';
COMMENT ON COLUMN "course_platforms"."updated_at" IS '강의-플랫폼 배정 수정 일시.';
COMMENT ON TABLE "course_student_progress" IS '학생별 강의 학습 현황 통계.';
COMMENT ON COLUMN "course_student_progress"."id" IS '학생 학습 현황 고유 UUID.';
COMMENT ON COLUMN "course_student_progress"."course_id" IS '학습 현황이 속한 강의 UUID.';
COMMENT ON COLUMN "course_student_progress"."user_id" IS '학습 현황 대상 학생 사용자 UUID.';
COMMENT ON COLUMN "course_student_progress"."completed_weeks" IS '완료한 주차 수.';
COMMENT ON COLUMN "course_student_progress"."total_weeks" IS '전체 주차 수.';
COMMENT ON COLUMN "course_student_progress"."learning_hours" IS '누적 학습 시간.';
COMMENT ON COLUMN "course_student_progress"."commit_count" IS '누적 커밋 수.';
COMMENT ON COLUMN "course_student_progress"."average_score" IS '평균 점수.';
COMMENT ON COLUMN "course_student_progress"."created_at" IS '학생 학습 현황 생성 일시.';
COMMENT ON COLUMN "course_student_progress"."updated_at" IS '학생 학습 현황 수정 일시.';