@startuml
left to right direction
actor "Gestore Cooperativa" as gestore
actor "Impiegato" as imp 
actor "Cliente" as cliente
actor "Utente\nNon loggato" as utente
actor "Pescatore" as pescatore
actor "Pescheria" as cliente_pescheria
actor "Ristorante" as cliente_ristorante
actor "Tempo" as tempo
actor "Sistema\ndi interscambio" as sistema_fatture
actor "Fattorino" as fattorino

cliente_ristorante -up-|> cliente
cliente_pescheria  -up-|> cliente

rectangle "Software dzuk" {
    usecase "Registrazione cliente" as registra_cliente
    usecase "Registrazione impiegato" as registra_impiegato
    usecase "Registrazione prodotto" as registra_prodotto
    usecase "Visualizzazione inventario" as visualizza_inventario
    usecase "Acquisto prodotti" as acquisto_prodotti
    usecase "Genera report" as genera_report
    usecase "Visualizza report" as visualizza_report
    usecase "Genera e invia fattura" as genera_invio_fattura
    usecase "Visualizza spedizioni" as visualizza_spedizioni
    usecase "Conferma consegna" as conferma_spedizione
}

imp     --- registra_cliente
note bottom of link
    L'impiegato deve essere abilitato
    per la registrazione dei clienti
end note
imp     --- registra_impiegato
note bottom of link
    L'impiegato deve essere abilitato
    per la registrazione degli impiegati
end note

registra_cliente   --- gestore
registra_cliente --- cliente
note of link: Secondario
registra_cliente -[hidden]l- registra_impiegato
registra_impiegato --- gestore
'registra_impiegato --- imp
'note of link: Secondario
registra_prodotto  --- imp
registra_prodotto  ---- pescatore
note right of link: Secondario
visualizza_inventario --- cliente
visualizza_inventario --- utente
acquisto_prodotti --- cliente
acquisto_prodotti -.> visualizza_inventario : <<Include>>
tempo   --- genera_report
gestore --- genera_report
gestore --- visualizza_report
genera_report -[hidden]l- visualizza_report
tempo -.- genera_invio_fattura
sistema_fatture --- genera_invio_fattura
note of link: Secondario
fattorino --- visualizza_spedizioni
fattorino --- conferma_spedizione
cliente --u- conferma_spedizione
note of link: Secondario
@enduml