25 lines
1.3 KiB
SQL
25 lines
1.3 KiB
SQL
-- 2026_06_25_001_share_events.sql
|
||
-- 分享事件追踪表(spec: docs/superpowers/specs/2026-06-11-share-modal-redesign-design.md § 3.5)
|
||
|
||
CREATE TABLE IF NOT EXISTS public.share_events (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
asset_id BIGINT NOT NULL,
|
||
sharer_user_id BIGINT NOT NULL,
|
||
system_type VARCHAR(32) NOT NULL,
|
||
share_target VARCHAR(32) NOT NULL,
|
||
result VARCHAR(32) NOT NULL,
|
||
client_ts BIGINT NOT NULL,
|
||
server_ts BIGINT NOT NULL DEFAULT (EXTRACT(EPOCH FROM NOW()) * 1000)::BIGINT,
|
||
extra JSONB DEFAULT '{}'::jsonb,
|
||
|
||
CONSTRAINT fk_share_events_sharer FOREIGN KEY (sharer_user_id)
|
||
REFERENCES public.users(id) ON DELETE RESTRICT
|
||
);
|
||
|
||
CREATE INDEX IF NOT EXISTS idx_share_events_asset_id ON public.share_events (asset_id);
|
||
CREATE INDEX IF NOT EXISTS idx_share_events_sharer ON public.share_events (sharer_user_id);
|
||
CREATE INDEX IF NOT EXISTS idx_share_events_system_type ON public.share_events (system_type);
|
||
CREATE INDEX IF NOT EXISTS idx_share_events_server_ts ON public.share_events (server_ts DESC);
|
||
|
||
-- 序列起始值预留(按 CLAUDE.md 数据库规范)
|
||
ALTER SEQUENCE public.share_events_id_seq RESTART WITH 10000; |