@startuml
skinparam monochrome true
skinparam packageStyle rectangle
skinparam shadowing false

autonumber

'hide footbox
actor "Vehicle Fleet Manager (VFM)" as VFM
participant ":CheckupUI" as UI
participant ":CheckupController" as CTRL
participant "vehicle\n:Vehicle" as VEH
participant "checkUpRecordRepository\n:checkUpRecordRepository" as CRR

activate VFM

    VFM -> UI : requests vehicle check-up registration

    activate UI

        UI -> CTRL : initiateCheckupRegistration
        UI -> CTRL : getVehicleDetails(Vehicle ID)
        ref over CTRL
            Validate Vehicle ID

        end ref

        activate CTRL

            CTRL --> UI : vehicleDetails
        deactivate CTRL

        UI --> VFM : displays vehicle details
    deactivate UI

    VFM -> UI : provides check-up details (Date, current kms)
    activate UI

        UI --> VFM : confirms details
    deactivate UI

    VFM -> UI : confirms submission
    activate UI

        UI -> CTRL : registerCheckup(Vehicle ID, Date, current kms)
        activate CTRL

            CTRL -> VEH: checkIfRegisteredInUS06(Vehicle ID)
            activate VEH

                ref over VEH
                    Verify Registration in US06
                end ref

                VEH --> CTRL : isRegistered
            deactivate VEH

            CTRL -> CRR: addCheckupRecord(Vehicle ID, Date, current kms)
            activate CRR

                ref over CRR
                    Register Checkup
                end ref

                CRR --> CTRL : checkupRecord
            deactivate CRR
            CTRL --> UI: checkupRecord
        deactivate CTRL

        UI --> VFM: displays results
    deactivate UI

deactivate VFM

@enduml

