Saltar a contenido

Casos de Uso

Autenticación, Usuarios y Perfil

graph TD
    actorInvitado[("Cliente no autenticado")]
    actorUsuario[("Cliente autenticado")]
    extGoogle[("Google")]
    extApple[("Apple")]

    actorUsuario -->|Hereda permisos| actorInvitado

    subgraph Modulo_Usuarios["Gestión de Usuarios y Perfil"]
        UC_RF01["RF-01: Registro / Login con Email y Password"]
        UC_RF02_G["RF-02: Auth con Google"]
        UC_RF02_A["RF-02: Auth con Apple"]
        UC_RF03["RF-03: Iniciar y Cerrar Sesión"]
        UC_RF04["RF-04/05: Consultar y Modificar Perfil / Foto"]
    end

    actorInvitado --> UC_RF01
    actorInvitado --> UC_RF02_G
    actorInvitado --> UC_RF02_A
    actorInvitado --> UC_RF03
    actorUsuario --> UC_RF04

    UC_RF02_G <-->|API OAuth| extGoogle
    UC_RF02_A <-->|API OAuth / Sign in with Apple| extApple

Búsqueda, Proceso de Reserva y Pago

graph TD
    actorCliente[("Cliente (Autenticado / Sin autenticar)")]
    extPago[("Sistema de pago simulado")]

    subgraph Modulo_Reserva["Búsqueda y Flujo de Compra"]
        UC_Busqueda["RF-08 a 15, 60: Buscar Vuelos y Listar Cercanos"]
        UC_Filtros["RF-17/18: Filtrar y Ordenar Resultados"]
        UC_Mapa["RF-19 a 22: Exploración por Mapa"]
        UC_SelVuelo["RF-23/24: Seleccionar Vuelo (Ida/Vuelta)"]
        UC_Pasajeros["RF-25/26: Datos de Pasajeros / Autocompletado"]
        UC_Asientos["RF-27/28: Selección y Coste de Asientos"]
        UC_Equipaje["RF-29 a 31: Selección de Equipaje y Extras"]
        UC_Pago["RF-32 a 35: Resumen, Facturación y Pago Simulado"]
        UC_Confirmacion["RF-36/37: Generar y Confirmar Reserva"]
    end

    actorCliente --> UC_Busqueda
    actorCliente --> UC_Filtros
    actorCliente --> UC_Mapa

    UC_Busqueda --> UC_SelVuelo
    UC_SelVuelo --> UC_Pasajeros
    UC_Pasajeros --> UC_Asientos
    UC_Asientos --> UC_Equipaje
    UC_Equipaje --> UC_Pago
    UC_Pago --> UC_Confirmacion

    UC_Pago <-->|Procesar Transacción| extPago

Gestión de Reservas y Check-in

graph TD
    actorInvitado[("Usuario sin Cuenta")]
    actorUsuario[("Usuario Autenticado")]

    subgraph Modulo_Gestion["Gestión de Reservas y Check-in"]
        UC_Consultar["RF-38/39/43: Consultar / Detalle de Reserva"]
        UC_Modificar["RF-40 a 42: Cancelar o Modificar Asiento / Datos"]
        UC_CheckIn["RF-44 a 46: Realizar Check-in"]
        UC_Tarjeta["RF-47/48: Generar y Descargar Tarjeta de Embarque"]
    end

    actorInvitado --> UC_Consultar
    actorInvitado --> UC_CheckIn

    actorUsuario --> UC_Consultar
    actorUsuario --> UC_Modificar
    actorUsuario --> UC_CheckIn

    UC_CheckIn --> UC_Tarjeta

Panel de Administración de Gestión de Usuarios y Reservas

graph TD
    actorAdminUser[("Administrador de Usuarios")]

    subgraph Modulo_AdminUsers["Administración de Usuarios y Reservas"]
        UC_CRUD_Users["RF-49/50: Gestionar Usuarios y Perfiles"]
        UC_CRUD_Res["RF-51/52/53: Gestionar Reservas del Sistema"]
        UC_IO_Users["RF-59: Importar / Exportar Datos (CSV)"]
    end

    actorAdminUser --> UC_CRUD_Users
    actorAdminUser --> UC_CRUD_Res
    actorAdminUser --> UC_IO_Users

Panel de Administración de Gestión de Vuelos y Flota

graph TD
    actorAdminVuelos[("Administrador de Vuelos")]

    subgraph Modulo_AdminVuelos["Administración de Vuelos y Flota"]
        UC_Aero["RF-54: Gestionar Ciudades y Aeropuertos"]
        UC_Flota["RF-55: Gestionar Aeronaves de la Flota"]
        UC_Vuelos["RF-56/58: Crear, Modificar y Activar Vuelos"]
        UC_Asignar["RF-57: Asignar Aeronave a Vuelo"]
        UC_IO_Vuelos["RF-59: Importar / Exportar Datos (CSV)"]
    end

    actorAdminVuelos --> UC_Aero
    actorAdminVuelos --> UC_Flota
    actorAdminVuelos --> UC_Vuelos
    actorAdminVuelos --> UC_Asignar
    actorAdminVuelos --> UC_IO_Vuelos