@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<AuthDataResponse>
Dio --> UI : tokens + role
UI -> UI : save tokens and route by role
@enduml
