-- 294_study_memo_card_progress.sql
-- 카드 SR(간격반복) 미러 — P1 휴면.
-- P1 에서는 writer 가 없어 빈 테이블만 생성한다 (SR 산술/sr_schedule 공용추출은 P3).
--   미리 만드는 이유: P3 에서 ALTER 없이 데이터 채우기만 하도록 스키마 선확보.
-- 226_study_question_progress.sql 골격을 카드용으로 미러 (question -> card).
-- 간격 상수 정본(P3 적용): REVIEW_INTERVAL_DAYS={1:3,2:7,3:14}, MASTERED=4, FIRST_DUE=1.

CREATE TABLE IF NOT EXISTS study_memo_card_progress (
    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,
    card_id           BIGINT       NOT NULL REFERENCES study_memo_cards(id) ON DELETE CASCADE,

    last_outcome      VARCHAR(20),
    last_reviewed_at  TIMESTAMPTZ,
    due_at            TIMESTAMPTZ,
    review_stage      SMALLINT,

    created_at        TIMESTAMPTZ  NOT NULL DEFAULT now(),
    updated_at        TIMESTAMPTZ  NOT NULL DEFAULT now(),

    CONSTRAINT uq_card_progress_user_card UNIQUE (user_id, card_id)
);
