-- 186_study_questions.sql (1/5)
-- study_topic 아래 4지선다 문제은행. 기사시험 필기 대비.
--
-- 핵심:
--   - study_topic_id 1:N (한 주제에 N 문제, 워크스페이스 컨테이너 PR-1 연장).
--   - subject/scope 는 느슨한 분류 (강한 enum 미사용). 자유 텍스트 + 자동완성은 후속.
--   - correct_choice 는 SMALLINT CHECK 1~4. 객관식 외 형식(주관식·OX·다답) 은 본 PR 범위 밖.
--   - is_active 는 향후 출제 제외 토글 (예: 잘못 입력한 문제 임시 비활성). soft delete(deleted_at)와 별개.
--   - polymorphic study_topic_items 영구 금지 (PR-1 가드레일). 자산 타입별 조인 테이블 없음 — 본 테이블은 study_topic_id 직접 FK.

CREATE TABLE IF NOT EXISTS study_questions (
    id              BIGSERIAL PRIMARY KEY,
    user_id         BIGINT NOT NULL REFERENCES users(id) ON DELETE CASCADE,
    study_topic_id  BIGINT NOT NULL REFERENCES study_topics(id) ON DELETE CASCADE,

    question_text   TEXT NOT NULL,
    choice_1        TEXT NOT NULL,
    choice_2        TEXT NOT NULL,
    choice_3        TEXT NOT NULL,
    choice_4        TEXT NOT NULL,
    correct_choice  SMALLINT NOT NULL CHECK (correct_choice BETWEEN 1 AND 4),

    subject         VARCHAR(120),
    scope           VARCHAR(200),
    exam_name       VARCHAR(120),
    exam_round      VARCHAR(120),
    explanation     TEXT,
    source_note     TEXT,

    is_active       BOOLEAN NOT NULL DEFAULT TRUE,

    created_at      TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at      TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    deleted_at      TIMESTAMPTZ
);
