-- name: CreateAuditLog :exec INSERT INTO audit_logs (user_id, action, resource_type, resource_id, details, ip_address, user_agent) VALUES ($1, $2, $3, $4, $5, $6, $7); -- name: ListAuditLogs :many SELECT al.*, u.name as user_name FROM audit_logs al LEFT JOIN users u ON al.user_id = u.id WHERE (sqlc.narg('user_id')::UUID IS NULL OR al.user_id = sqlc.narg('user_id')) AND (sqlc.narg('action')::VARCHAR IS NULL OR al.action = sqlc.narg('action')) AND (sqlc.narg('resource_type')::VARCHAR IS NULL OR al.resource_type = sqlc.narg('resource_type')) AND (sqlc.narg('start_time')::TIMESTAMPTZ IS NULL OR al.created_at >= sqlc.narg('start_time')) AND (sqlc.narg('end_time')::TIMESTAMPTZ IS NULL OR al.created_at <= sqlc.narg('end_time')) ORDER BY al.created_at DESC LIMIT $1 OFFSET $2; -- name: CountAuditLogs :one SELECT COUNT(*) FROM audit_logs WHERE (sqlc.narg('user_id')::UUID IS NULL OR user_id = sqlc.narg('user_id')) AND (sqlc.narg('action')::VARCHAR IS NULL OR action = sqlc.narg('action')) AND (sqlc.narg('resource_type')::VARCHAR IS NULL OR resource_type = sqlc.narg('resource_type')) AND (sqlc.narg('start_time')::TIMESTAMPTZ IS NULL OR created_at >= sqlc.narg('start_time')) AND (sqlc.narg('end_time')::TIMESTAMPTZ IS NULL OR created_at <= sqlc.narg('end_time'));