Yimaru-BackEnd/db/migrations/000014_activity_logs.up.sql

19 lines
864 B
SQL

CREATE TABLE IF NOT EXISTS activity_logs (
id BIGSERIAL PRIMARY KEY,
actor_id BIGINT NULL,
actor_role TEXT NULL,
action TEXT NOT NULL,
resource_type TEXT NOT NULL,
resource_id BIGINT NULL,
message TEXT NULL,
metadata JSONB NOT NULL DEFAULT '{}'::jsonb,
ip_address TEXT NULL,
user_agent TEXT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX IF NOT EXISTS idx_activity_logs_created_at ON activity_logs (created_at DESC);
CREATE INDEX IF NOT EXISTS idx_activity_logs_actor ON activity_logs (actor_id, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_activity_logs_resource ON activity_logs (resource_type, resource_id, created_at DESC);
CREATE INDEX IF NOT EXISTS idx_activity_logs_action ON activity_logs (action, created_at DESC);