← back to AbramsOS
db/migrations/0017_review_draft.sql
24 lines
-- 0017_review_draft.sql — Amazon/seller review + thank-you drafts, keyed to purchase.
-- ADDITIVE ONLY. One draft row per (purchase, target). Nothing here posts/sends;
-- posting is gated in lib/reviews/executors.js (approve + content_hash seal +
-- REVIEWS_EXECUTORS_LIVE + per-item confirm). Reviews never auto-submit.
CREATE TABLE IF NOT EXISTS review_draft (
id text PRIMARY KEY,
user_id text NOT NULL REFERENCES user_account(id) ON DELETE CASCADE,
purchase_id text NOT NULL REFERENCES purchase(id) ON DELETE CASCADE,
target text NOT NULL CHECK (target IN ('amazon_review','seller_email','google_review')),
product_name text,
draft_title text,
draft_text text,
rating integer,
status text NOT NULL DEFAULT 'draft' CHECK (status IN ('draft','approved','posted','skipped')),
content_hash text, -- seal captured at approval (anti stale-approval-replay)
seller_email_to text,
resolved jsonb, -- resolver output (google place_id / amazon product url, etc.)
created_at timestamptz NOT NULL DEFAULT now(),
updated_at timestamptz NOT NULL DEFAULT now(),
UNIQUE (purchase_id, target)
);
CREATE INDEX IF NOT EXISTS review_draft_user_idx ON review_draft (user_id, status);
CREATE INDEX IF NOT EXISTS review_draft_purchase_idx ON review_draft (purchase_id);