-- Notification preferences on the user record — no separate entity needed
ALTER TABLE users ADD COLUMN notify_on_reply   BOOLEAN NOT NULL DEFAULT false;
ALTER TABLE users ADD COLUMN notify_on_mention BOOLEAN NOT NULL DEFAULT false;

-- In-app notifications
CREATE TABLE notifications (
    id            UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    recipient_id  UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
    type          VARCHAR(32) NOT NULL,  -- 'REPLY' | 'MENTION'
    document_id   UUID,
    reference_id  UUID,                  -- commentId that triggered this notification
    annotation_id UUID,
    read          BOOLEAN NOT NULL DEFAULT false,
    created_at    TIMESTAMP NOT NULL DEFAULT now(),
    actor_name    VARCHAR(255)
);

CREATE INDEX idx_notifications_recipient ON notifications(recipient_id, read, created_at DESC);
