-- Per-reviewer-per-paper confidentiality agreement acceptance log.
-- One row per acceptance. Immutable once written.
-- Satisfies the informed-consent precondition for the email watermark
-- introduced in docs/reviewer-paper-access/phase-2b-i-audit-watermark-design.md §2.3.1.
CREATE TABLE reviewer_paper_agreements (
    id            UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
    reviewer_id   UUID        NOT NULL REFERENCES users(id),
    paper_id      UUID        NOT NULL REFERENCES papers(id),
    accepted_at   TIMESTAMPTZ NOT NULL DEFAULT NOW(),
    ip_address    VARCHAR(45) NOT NULL,   -- IPv6 max length; legal record of acceptance origin
    user_agent    VARCHAR(500),

    CONSTRAINT uq_reviewer_paper_agreements_reviewer_paper
        UNIQUE (reviewer_id, paper_id)
);

CREATE INDEX idx_reviewer_paper_agreements_reviewer
    ON reviewer_paper_agreements(reviewer_id);

CREATE INDEX idx_reviewer_paper_agreements_paper
    ON reviewer_paper_agreements(paper_id);
