Files
atlas-seller-kit/packages/database/migrations/049_logistics_rate_reviews.sql
2026-09-28 17:34:33 +08:00

21 lines
1.1 KiB
SQL

SET search_path TO atlas, public;
-- 平台费率审核是系统级事实;证据与复算样本随启用事务一起保存。
CREATE TABLE logistics_rate_card_reviews (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
rate_card_id UUID NOT NULL UNIQUE REFERENCES logistics_rate_cards(id) ON DELETE RESTRICT,
reviewer_user_id UUID NOT NULL REFERENCES users(id) ON DELETE RESTRICT,
idempotency_key UUID NOT NULL,
request_hash CHAR(64) NOT NULL,
rules_hash CHAR(64) NOT NULL,
source_reference TEXT NOT NULL CHECK (length(trim(source_reference)) BETWEEN 3 AND 500),
review_note TEXT NOT NULL CHECK (length(trim(review_note)) BETWEEN 20 AND 2000),
samples JSONB NOT NULL CHECK (jsonb_typeof(samples) = 'array' AND jsonb_array_length(samples) >= 6),
effective_from TIMESTAMPTZ NOT NULL,
reviewed_at TIMESTAMPTZ NOT NULL DEFAULT now(),
UNIQUE (reviewer_user_id, idempotency_key)
);
-- 审核记录不可改写;后续资费变化须建立新费率版本并重新审核。
REVOKE UPDATE, DELETE ON logistics_rate_card_reviews FROM atlas_app;