CREATE TABLE IF NOT EXISTS audit_logs ( id UUID PRIMARY KEY, user_id UUID, action TEXT NOT NULL, resource TEXT NOT NULL, resource_id UUID, ip_address TEXT, user_agent TEXT, metadata JSONB, timestamp TIMESTAMPTZ NOT NULL DEFAULT NOW() ); CREATE INDEX IF NOT EXISTS idx_audit_logs_user_id ON audit_logs(user_id); CREATE INDEX IF NOT EXISTS idx_audit_logs_action ON audit_logs(action); CREATE INDEX IF NOT EXISTS idx_audit_logs_timestamp ON audit_logs(timestamp); CREATE INDEX IF NOT EXISTS idx_audit_logs_ip_address ON audit_logs(ip_address);