21 lines
1.1 KiB
SQL
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;
|