feat(admin): add routed task evidence details
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
-- +goose Up
|
||||
CREATE TABLE evidence_assets (
|
||||
id TEXT PRIMARY KEY,
|
||||
upload_key TEXT NOT NULL,
|
||||
task_id TEXT NOT NULL,
|
||||
attempt_id TEXT NOT NULL,
|
||||
kind TEXT NOT NULL CHECK (kind = 'SKU_PANEL_GATE_1'),
|
||||
privacy_tier TEXT NOT NULL CHECK (privacy_tier = 'INTERNAL_RAW'),
|
||||
sha256 TEXT NOT NULL CHECK (
|
||||
length(sha256) = 64
|
||||
AND sha256 NOT GLOB '*[^0-9a-f]*'
|
||||
),
|
||||
byte_size INTEGER NOT NULL CHECK (
|
||||
typeof(byte_size) = 'integer'
|
||||
AND byte_size > 0
|
||||
AND byte_size <= 10485760
|
||||
),
|
||||
content_type TEXT NOT NULL CHECK (content_type = 'image/png'),
|
||||
width_px INTEGER NOT NULL CHECK (
|
||||
typeof(width_px) = 'integer'
|
||||
AND width_px > 0
|
||||
AND width_px <= 8192
|
||||
),
|
||||
height_px INTEGER NOT NULL CHECK (
|
||||
typeof(height_px) = 'integer'
|
||||
AND height_px > 0
|
||||
AND height_px <= 8192
|
||||
),
|
||||
storage_key TEXT NOT NULL CHECK (
|
||||
storage_key = substr(sha256, 1, 2) || '/' || sha256 || '.png'
|
||||
),
|
||||
uploaded_by_device_id TEXT NOT NULL CHECK (trim(uploaded_by_device_id) <> ''),
|
||||
captured_at TEXT NOT NULL CHECK (trim(captured_at) <> ''),
|
||||
created_at TEXT NOT NULL CHECK (trim(created_at) <> ''),
|
||||
CHECK (width_px * height_px <= 16777216),
|
||||
UNIQUE (uploaded_by_device_id, upload_key),
|
||||
FOREIGN KEY (task_id, attempt_id) REFERENCES purchase_attempts(task_id, id)
|
||||
);
|
||||
|
||||
CREATE INDEX evidence_assets_task_time_idx
|
||||
ON evidence_assets (task_id, captured_at, created_at, id);
|
||||
|
||||
-- +goose Down
|
||||
-- 已写入的内部原图是审计事实,回滚迁移不得静默删除它们。
|
||||
CREATE TABLE evidence_downgrade_guard (
|
||||
valid INTEGER NOT NULL CHECK (valid = 1)
|
||||
);
|
||||
|
||||
INSERT INTO evidence_downgrade_guard (valid)
|
||||
SELECT CASE WHEN (SELECT COUNT(*) FROM evidence_assets) = 0 THEN 1 ELSE 0 END;
|
||||
|
||||
DROP TABLE evidence_downgrade_guard;
|
||||
DROP TABLE evidence_assets;
|
||||
Reference in New Issue
Block a user