@startuml uml-class-finanzas !include _style.iuml skinparam classAttributeIconSize 0 title 6. Diagrama de clases — Finanzas class Pago { + id : UUID + ordenId : UUID + monto : Decimal + metodo : String + estatus : String + referencia : String + fechaPago : DateTime -- + confirmar(referencia) : Boolean } class Reembolso { + id : UUID + pagoId : UUID + monto : Decimal + motivo : String + estatus : String + aprobadorId : UUID + procesadorId : UUID -- + aprobar(aprobador) : Boolean + procesar(procesador) : Boolean + rechazar(motivo) : Boolean } class Factura { + id : UUID + ordenId : UUID + folio : String + uuidCfdi : String + monto : Decimal + estatus : String + pdfUrl : String -- + cancelar(motivo) : Boolean } class CortePago { + id : UUID + prestadorId : UUID + periodoInicio : Date + periodoFin : Date + montoTotal : Decimal + estatusDeposito : String -- + marcarRevisado() : Boolean + marcarDepositado(ref) : Boolean } class TransaccionPrestador { + id : UUID + prestadorId : UUID + ordenId : UUID + corteId : UUID + monto : Decimal + tipo : String + fecha : DateTime } class Orden <> #EAEAEA class Prestador <> #EAEAEA Orden "1" -- "0..*" Pago : paga > Orden "1" -- "0..*" Factura : factura > Pago "1" -- "0..*" Reembolso : reembolsa > Orden "1" -- "0..*" TransaccionPrestador : origina > Prestador "1" -- "0..*" TransaccionPrestador : cobra > CortePago "1" -- "1..*" TransaccionPrestador : consolida > Prestador "1" -- "0..*" CortePago : recibe > note right of Reembolso Segregation of Duties: aprobador != procesador end note footer Fuente: 00.sql + apps/web/src/lib/dashboard/actions/finanzas/** @enduml