@startuml CompaniaHotelera

usecase (Visualizar ofertas) as VisualOf
"Consultar disponibilidades" as (ConsultDisponib)

actor Cliente
Cliente-up-(ConsultDisponib)
Cliente-up-(VisualOf)

usecase (Gestionar peticiones) as GestPet
usecase (Realizar ofertas) as RealOf
usecase (Consultar reservas) as ConsultRes

actor Administrador
Administrador-up-(ConsultRes)
Administrador--(GestPet) 
Administrador-down-(RealOf) 

Administrador-right-|>Cliente

(Mostrar calendario) as (MCalenda)
(ConsultDisponib).up.>(MCalenda)

(Consultar)<|--(ConsultDisponib): <<include>>
(Consultar)<|--(ConsultRes)

(Buscar elementos) as (BuscaElem)
(Consultar).up.>(BuscaElem): <<include>>

actor Comercial

Comercial-up-|> :Gestor de reservas:
Comercial-right-|> Administrador

usecase (Gestionar nuevas reservas) as GestNReser
:Gestor de reservas:-up-(GestNReser)

usecase ROfComercial as "Realizar ofertas {vista comercial}
--
extension points
Bloqueo temporal de reserva "

Comercial--(ROfComercial)
(ROfComercial)--|>(RealOf)
usecase (Bloqueo temporal de reserva) as (Bloq)
(Bloq)..>(ROfComercial): <<extend>>
(Recalculo de precios)<..(ROfComercial): <<include>>


@enduml
