@startuml
title GetAppointmentById System Sequence Diagram (Admin)

actor Mechanic

participant AppointmentController as "<<Controller>>\nAppointmentController"
participant AppointmentService as "<<Service>>\nAppointmentService"
participant AppointmentRepository as "<<Repository>>\nAppointmentRepository"
participant Database as "<<Database>>\nDatabase"

Mechanic -> AppointmentController: GET /api/v1/appointments/{appointmentId}
activate AppointmentController

AppointmentController -> AppointmentService: getAppointmentByAppointmentId(appointmentId)
activate AppointmentService

AppointmentService -> AppointmentRepository: getAppointmentByAppointmentId(appointmentId)
activate AppointmentRepository

AppointmentRepository -> Database: SELECT * FROM appointments WHERE appointmentId = appointmentId
activate Database

Database --> AppointmentRepository: Appointment
deactivate Database

AppointmentRepository --> AppointmentService: Appointment
deactivate AppointmentRepository

AppointmentService --> AppointmentController: AppointmentResponseModel
deactivate AppointmentService

AppointmentController --> Mechanic: AppointmentResponseModel
deactivate AppointmentController
@enduml
