Ir al contenido

Ver Log de Actividad

Muestra el historial completo de acciones del equipo de soporte.

  1. Ve a Soporte → Actividad
  2. El log muestra los eventos más recientes primero
  3. Usa los filtros para acotar la búsqueda
Detalles técnicos — Ver log de actividad
support_activity_log (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
actor_id UUID REFERENCES auth.users(id),
action TEXT NOT NULL,
resource_type TEXT NOT NULL,
resource_id UUID NOT NULL,
metadata JSONB DEFAULT '{}',
ip_address INET,
created_at TIMESTAMPTZ DEFAULT now()
);
-- Índices para búsqueda eficiente
CREATE INDEX activity_actor_idx ON support_activity_log(actor_id);
CREATE INDEX activity_resource_idx ON support_activity_log(resource_type, resource_id);
CREATE INDEX activity_created_idx ON support_activity_log(created_at DESC);
CREATE OR REPLACE FUNCTION log_ticket_activity()
RETURNS TRIGGER AS $$
BEGIN
INSERT INTO support_activity_log (actor_id, action, resource_type, resource_id, metadata)
VALUES (
auth.uid(),
CASE
WHEN TG_OP = 'INSERT' THEN 'ticket_created'
WHEN NEW.status != OLD.status THEN 'status_changed'
WHEN NEW.agent_id != OLD.agent_id THEN 'ticket_assigned'
WHEN NEW.priority != OLD.priority THEN 'priority_changed'
ELSE 'ticket_updated'
END,
'ticket',
NEW.id,
jsonb_build_object(
'old', to_jsonb(OLD),
'new', to_jsonb(NEW)
)
);
RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
CREATE TRIGGER ticket_activity_trigger
AFTER INSERT OR UPDATE ON support_tickets
FOR EACH ROW EXECUTE FUNCTION log_ticket_activity();