@startuml userlogout
actor Client
participant "APIRouter" as router
participant "OAuth2Scheme" as oauth2
participant "TinyDBHelper" as db

Client -> router : user_logout(token)
activate router

router -> oauth2 : get token from request
activate oauth2
oauth2 --> router : token
deactivate oauth2

router -> db : query_token(user_id, token)
activate db
alt if token exists
    db --> router : true
    router -> db : remove_token_by_value(token)
    db -> router : token removed
else
    db --> router : false
    router --> Client : {"detail": "Token not found."}
end
deactivate db

router --> Client : {"message": "User logged out successfully"}
deactivate router
@enduml