-- +goose Up CREATE TABLE IF NOT EXISTS audit_log ( id TEXT PRIMARY KEY, occurred_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, user_id TEXT REFERENCES user(id) ON DELETE SET NULL, action TEXT NOT NULL, resource_type TEXT, resource_id TEXT, ip TEXT, user_agent TEXT, metadata_json TEXT ); CREATE INDEX IF NOT EXISTS idx_audit_log_user_id_occurred_at ON audit_log(user_id, occurred_at DESC); CREATE INDEX IF NOT EXISTS idx_audit_log_action_occurred_at ON audit_log(action, occurred_at DESC); -- +goose Down DROP TABLE IF EXISTS audit_log;