@startuml actor User participant "Flutter LoginScreen" as UI participant "ApiClient/Dio" as Dio participant "AuthController" as Controller participant "AuthService" as Service database "PostgreSQL" as DB User -> UI : enter email/password UI -> Dio : POST /api/v1/auth/login Dio -> Controller : LoginRequest Controller -> Service : login(req) Service -> DB : find user + refresh token DB --> Service : user Service --> Controller : AuthDataResponse Controller --> Dio : ApiResponse Dio --> UI : tokens + role UI -> UI : save tokens and route by role @enduml