-- 029: Admin audit logs (compliance-service admin actions) -- Complements 022_create_audit_logs.sql with the admin-focused schema. -- If 022 already created the audit_logs table, run ALTER or skip. This DDL is for fresh installs. CREATE TABLE IF NOT EXISTS audit_logs ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), admin_id UUID NOT NULL REFERENCES users(id), admin_name VARCHAR(200) NOT NULL, action VARCHAR(100) NOT NULL, resource VARCHAR(100) NOT NULL, resource_id VARCHAR(100), ip_address VARCHAR(45), result VARCHAR(20) NOT NULL DEFAULT 'success', details JSONB, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), version INT NOT NULL DEFAULT 1 ); CREATE INDEX IF NOT EXISTS idx_audit_logs_admin_id ON audit_logs(admin_id); CREATE INDEX IF NOT EXISTS idx_audit_logs_action ON audit_logs(action); CREATE INDEX IF NOT EXISTS idx_audit_logs_resource ON audit_logs(resource, resource_id); CREATE INDEX IF NOT EXISTS idx_audit_logs_created_at ON audit_logs(created_at DESC);