@startuml
autonumber
actor "Administrator" as ADMIN

participant ":RemoveCourierUI" as UI
participant ":RemoveCourierController" as CTRL
participant "PotApplication" as PA
participant "app \n:PotApplication" as APA
participant "session \n:UserSession" as US
participant "courServ \n:CourierService" as RF
participant ":CourierDB" as CDB

activate ADMIN

ADMIN -> UI : initializes the remove of a Courier
activate UI
UI -> ADMIN : asks for the courier's id
deactivate UI

ADMIN -> UI : inserts the required data
activate UI
UI -> CTRL : validateCourier(id)
activate CTRL
CTRL -> RF : create()
activate RF
RF -> CDB** : create()
deactivate RF
CTRL -> PA : app = getInstance()
activate PA
deactivate PA
deactivate US
CTRL -> CTRL : validateInput(id)
deactivate RF
deactivate CTRL

UI -> ADMIN : validates, presents the data and asks for a confirmation
deactivate UI

ADMIN -> UI : confirms
activate UI
UI -> CTRL : removeCourier(id)
activate CTRL
CTRL -> RF : removeCourier(id)
activate RF
RF -> CDB : removeCourier(id)
activate CDB
deactivate CDB
UI -> ADMIN : informs the success of the operation
deactivate RF
deactivate CTRL
deactivate UI

deactivate ADMIN

@enduml
