CREATE TABLE "payment_receipt_manual_proposals" ( "id" UUID NOT NULL PRIMARY KEY, "attachment_id" UUID NOT NULL REFERENCES "payment_batch_receipt_attachments"("id") ON DELETE RESTRICT ON UPDATE CASCADE, "original_verification_id" UUID NOT NULL REFERENCES "payment_receipt_verifications"("id") ON DELETE RESTRICT ON UPDATE CASCADE, "source_sha256" VARCHAR(64) NOT NULL, "source_version" INTEGER NOT NULL CHECK ("source_version" > 0), "status" VARCHAR(32) NOT NULL CHECK ("status" IN ('pending_review', 'association_ready', 'approved', 'rejected')), "proposed_by" UUID NOT NULL, "reviewed_by" UUID, "payload_encrypted" TEXT NOT NULL, "review_note_encrypted" TEXT, "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, "reviewed_at" TIMESTAMP(3), CONSTRAINT "payment_receipt_manual_review_decision_check" CHECK ( ("status" IN ('pending_review', 'association_ready') AND "reviewed_by" IS NULL AND "reviewed_at" IS NULL) OR ("status" IN ('approved', 'rejected') AND "reviewed_by" IS NOT NULL AND "reviewed_at" IS NOT NULL AND "reviewed_by" <> "proposed_by") ) ); CREATE UNIQUE INDEX "payment_receipt_manual_proposals_attachment_id_source_version_key" ON "payment_receipt_manual_proposals"("attachment_id", "source_version");