@startuml uml-use-case-finanzas-marketing-rrhh !include _style.iuml left to right direction title 2.4 Diagrama de casos de uso - Finanzas, Marketing y RRHH ' ===================================================================== ' Casos de uso de tres roles administrativos especializados. ' Total: 14 casos de uso (>= 12 requeridos). ' Nota clave: separacion de responsabilidades (SoD) entre quien aprueba ' un reembolso y quien lo procesa contra el procesador externo. ' ===================================================================== actor "Finanzas" as Fin actor "Marketing" as Mkt actor "RRHH" as RH rectangle "Dashboard administrativo (Next.js)" { package "Finanzas" as PF { usecase "Generar corte" as F_COR usecase "Aprobar reembolso" as F_APR usecase "Procesar reembolso" as F_PRO usecase "Emitir factura" as F_EMI usecase "Cancelar factura" as F_CAN usecase "Revisar pago" as F_PAG } package "Marketing" as PM { usecase "Crear banner" as M_BAN usecase "Crear cupon" as M_CUP usecase "Programar campana" as M_CAM } package "RRHH" as PR { usecase "Enviar invitacion" as R_ENV usecase "Revocar invitacion" as R_REV usecase "Extender invitacion" as R_EXT } ' Casos auxiliares usecase "Registrar movimiento contable" as A_MOV usecase "Notificar por email" as A_MAIL } ' ----- Asociaciones ----- Fin --> F_COR Fin --> F_APR Fin --> F_PRO Fin --> F_EMI Fin --> F_CAN Fin --> F_PAG Mkt --> M_BAN Mkt --> M_CUP Mkt --> M_CAM RH --> R_ENV RH --> R_REV RH --> R_EXT ' ----- Relaciones de inclusion / extension ----- F_PRO ..> A_MOV : <> F_EMI ..> A_MOV : <> F_CAN ..> A_MOV : <> R_ENV ..> A_MAIL : <> R_EXT ..> A_MAIL : <> M_CAM ..> M_BAN : <> M_CAM ..> M_CUP : <> F_APR ..> F_PRO : <> note bottom of F_PRO apps/web/src/app/dashboard/reembolsos/[id]/page.tsx apps/web/src/app/api/refunds/[id]/route.ts Separacion de responsabilidades (SoD): el aprobador NO puede ser el procesador. end note note right of F_COR apps/web/src/app/dashboard/cortes/[id]/page.tsx Corte por prestador / por zona / por periodo end note note left of R_ENV apps/web/src/app/dashboard/invitaciones/nueva/page.tsx apps/web/src/app/api/invitations/[id]/route.ts Email transaccional via Resend end note note bottom of M_CUP apps/web/src/app/dashboard/cupones/nuevo/page.tsx apps/web/src/app/api/coupons/route.ts end note footer Fuente: apps/web/src/app/dashboard/{cortes, reembolsos, facturas, marketing, cupones, invitaciones, rrhh}, apps/web/src/app/api/{coupons, banners, refunds, invitations, payouts} @enduml