@startuml uml-class-soporte !include _style.iuml skinparam classAttributeIconSize 0 title 7. Diagrama de clases — Soporte ITSM class Ticket { + id : UUID + folio : String + ordenId : UUID + reportadorId : UUID + agenteId : UUID + asunto : String + categoria : String + prioridad : String + estatus : String + tipo : String + tierActual : Integer -- + escalar(tier, hipotesis) : Boolean + resolver(codigo, notas) : Boolean + asignar(agente) : Boolean + cambiarPrioridad(p) : Boolean } class MensajeTicket { + id : UUID + ticketId : UUID + autorId : UUID + tipoAutor : String + contenido : String + esInterno : Boolean + fecha : DateTime } class MajorIncident { + id : UUID + titulo : String + severidad : String + inicio : DateTime + fin : DateTime + pirUrl : String -- + declarar() : Boolean + cerrar(causaRaiz) : Boolean + vincularTicket(ticket) : Boolean } class UpdateMIM { + id : UUID + majorIncidentId : UUID + autorId : UUID + contenido : String + fecha : DateTime } class KbArticle { + id : UUID + slug : String + titulo : String + contenido : String + version : Integer + estatus : String + audiencia : JSONB -- + publicar() : Boolean + despublicar() : Boolean + nuevaVersion(c) : Integer } class SlaPolicy { + id : UUID + nombre : String + frtMinutos : Integer + ttrMinutos : Integer + prioridadAplica : String -- + calcularVencimiento(creadoEn) : DateTime } class SlaCalendar { + id : UUID + nombre : String + zonaHoraria : String + diasLaborales : JSONB + horaInicio : String + horaFin : String -- + esLaboral(momento) : Boolean } class Usuario <> #EAEAEA class Orden <> #EAEAEA Usuario "1" -- "0..*" Ticket : reporta > Orden "0..1" -- "0..*" Ticket : relacionado_a > Ticket "1" *-- "0..*" MensajeTicket : dialoga Ticket "0..*" -- "0..*" MajorIncident : vincula > MajorIncident "1" *-- "0..*" UpdateMIM : actualiza SlaCalendar "1" -- "0..*" SlaPolicy : horario > SlaPolicy "1" -- "0..*" Ticket : rige > note right of Ticket Escalacion: L1 -> L2 -> L3 con hipotesis. Trigger SLA. end note footer Fuente: migrations/006_support_itsm.sql + apps/web/src/lib/dashboard/actions/soporte/** @enduml