/// Modèle utilisateur authentifié. class AuthUser { const AuthUser({ required this.uuid, required this.firstName, required this.lastName, required this.email, this.phone, this.locale = 'fr', }); final String uuid; final String firstName; final String lastName; final String email; final String? phone; final String locale; String get fullName => '$firstName $lastName'.trim(); factory AuthUser.fromJson(Map json) { return AuthUser( uuid: json['uuid'] as String, firstName: json['first_name'] as String? ?? '', lastName: json['last_name'] as String? ?? '', email: json['email'] as String, phone: json['phone'] as String?, locale: json['locale'] as String? ?? 'fr', ); } } /// Réponse d'authentification (login / register / refresh). class AuthTokens { const AuthTokens({ required this.accessToken, required this.refreshToken, this.user, }); final String accessToken; final String refreshToken; final AuthUser? user; factory AuthTokens.fromJson(Map json) { final userJson = json['user'] as Map?; return AuthTokens( accessToken: json['access_token'] as String? ?? json['token'] as String, refreshToken: json['refresh_token'] as String, user: userJson != null ? AuthUser.fromJson(userJson) : null, ); } }