initialize method

Future<bool> initialize()

Llamar al arrancar la app. Decodifica el JWT localmente, comprueba que no haya caducado y carga en memoria los claims disponibles.

Devuelve true si la sesión sigue activa, false si ha caducado o no existe token (en cuyo caso el storage ya ha sido limpiado).

Claims disponibles del JWT de Spring Boot: role → rol del usuario surname → apellido (usado como nombre de display al reiniciar) serviceId → id del servicio asignado

Implementation

Future<bool> initialize() async {
  final claims = await _authService.initializeSession();
  if (claims == null) {
    _userRole = null;
    _userName = null;
    _serviceId = null;
    _userId = null;
    notifyListeners();
    return false;
  }

  _userRole = claims['role'] as String?;
  // En el JWT solo está el apellido; se usa como nombre de display
  // hasta que el usuario haga un login completo que devuelva 'name'
  _userName = claims['surname'] as String?;
  _serviceId = claims['serviceId']?.toString();
  _userId = claims['sub']?.toString();

  notifyListeners();
  return true;
}