@startuml
skinparam monochrome true
skinparam packageStyle rectangle
skinparam shadowing false

autonumber

'hide footbox
actor "Vehicle And Equipment Fleet Manager" as VFM
participant "ListVehicleMaintenanceUI" as UI
participant "ListVehicleMaintenanceController" as Controller
participant "Repositories" as RepositorySingleton
participant "repositories\n:Repositories" as PLAT
participant "vehicleMaintenanceRepository:\nVehicleMaintenanceRepository" as VehicleMaintenanceRepository

activate VFM

    VFM -> UI : Requests to see the list of vehicles that need maintenance

    activate UI

        UI -> Controller : Request all Vehicles Repository

        activate Controller

        Controller--> RepositorySingleton : getVehiclesList()
        activate RepositorySingleton
        RepositorySingleton -> Controller : repositories Vehicle List
        deactivate RepositorySingleton

        Controller -> PLAT : getVehicleMaintenanceRepository()
        activate PLAT
        PLAT -> Controller : VehicleMaintenanceRepository
        deactivate PLAT

        Controller -> VehicleMaintenanceRepository : getVehiclesNeedMaintenance()
        activate VehicleMaintenanceRepository

        VehicleMaintenanceRepository -> Controller : getVehiclesNeedMaintenanceList
        deactivate VehicleMaintenanceRepository
        Controller -> UI : getVehiclesNeedMaintenanceList
        deactivate Controller

        UI -> VFM : Shows Vehicles List that need maintenance
        deactivate UI


@enduml

