-- 204_study_topic_subject_notes.sql (5/6)
-- 분야 설명 캐시 (PR-9). (study_topic, subject, scope) 단위.
-- 사용자가 풀이 결과 화면에서 "모르겠음" 카드 클릭 시 AI 즉석 생성 + 캐시.
--
-- status 권장값: none/pending/ready/failed/stale (PR-3 ai_explanation_status 와 동일 패턴).
-- scope 는 NULL 대신 빈 문자열 default — UNIQUE 제약 단순화.

CREATE TABLE IF NOT EXISTS study_topic_subject_notes (
    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,
    subject         VARCHAR(120) NOT NULL,
    scope           VARCHAR(200) NOT NULL DEFAULT '',
    content         TEXT,
    status          VARCHAR(20) NOT NULL DEFAULT 'none',
    generated_at    TIMESTAMPTZ,
    model           VARCHAR(120),
    created_at      TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    updated_at      TIMESTAMPTZ NOT NULL DEFAULT NOW()
);
