@startuml
state c1 <<choice>>
state c2 <<choice>>
state c3 <<choice>>

[*] --> arriver_personne
arriver_personne  -->verifier_abonnement
verifier_abonnement --> c1
c1 --> creer_abonner :[pas abonnée]
creer_abonner -> abonnee
c1 --> verifier_abonner_punis :[deja abonnée]
verifier_abonner_punis --> c2
c2 --> abonnee_punis :[abonnée punis ]
abonnee_punis --> [H] :[oui et ne peut pas emprunter de livre]
c2 --> verifier_abonner_posseder_plus_de_2_livre :[abonnée non pénalisée]
verifier_abonner_posseder_plus_de_2_livre --> c3
c3 --> prendre_livre : [l'abonnée a moins de 2 livres ]
creer_abonner --> prendre_livre
c3 --> possede_plus_de_2_livres : [l'abonnee possede plus de 2 livre]
possede_plus_de_2_livres --> [H] :[l'abonnée ne peut pas emprunter de livre]
prendre_livre --> donner_livre_a_abonner
donner_livre_a_abonner --> emprunter_livre
creer_abonner --> emprunter_livre
emprunter_livre --> [*] : [listeLivrePrisEncharge =[livre] ]



note right of c3
un abonnee ne peut qu'emprunter au maximum 2 livres
end note

note right of c2
un abonnée punis ne peut pas emprunter de livre
end note

@enduml
