class LoginRequest { final String email; final String password; LoginRequest({required this.email, required this.password}); Map toJson() => { 'email': email, 'password': password, }; } class RegisterRequest { final String email; final String password; final String name; RegisterRequest({ required this.email, required this.password, required this.name, }); Map toJson() => { 'email': email, 'password': password, 'name': name, }; } class AuthResponse { final String accessToken; final String refreshToken; final User user; AuthResponse({ required this.accessToken, required this.refreshToken, required this.user, }); factory AuthResponse.fromJson(Map json) => AuthResponse( accessToken: json['access_token'] as String, refreshToken: json['refresh_token'] as String, user: User.fromJson(json['user'] as Map), ); } class User { final String id; final String email; final String name; final bool isAdmin; final bool isTwoFactorEnabled; final String? tariffId; final String? calendarProvider; final DateTime createdAt; User({ required this.id, required this.email, required this.name, this.isAdmin = false, this.isTwoFactorEnabled = false, this.tariffId, this.calendarProvider, required this.createdAt, }); factory User.fromJson(Map json) => User( id: json['id'] as String, email: json['email'] as String, name: json['name'] as String? ?? '', isAdmin: json['is_admin'] as bool? ?? false, isTwoFactorEnabled: json['is_two_factor_enabled'] as bool? ?? false, tariffId: json['tariff_id'] as String?, calendarProvider: json['calendar_provider'] as String?, createdAt: DateTime.parse(json['created_at'] as String), ); Map toJson() => { 'id': id, 'email': email, 'name': name, 'is_admin': isAdmin, 'is_two_factor_enabled': isTwoFactorEnabled, 'tariff_id': tariffId, 'calendar_provider': calendarProvider, 'created_at': createdAt.toIso8601String(), }; } class TwoFactorRequest { final String code; TwoFactorRequest({required this.code}); Map toJson() => {'code': code}; } class ForgotPasswordRequest { final String email; ForgotPasswordRequest({required this.email}); Map toJson() => {'email': email}; } class ResetPasswordRequest { final String token; final String password; ResetPasswordRequest({required this.token, required this.password}); Map toJson() => { 'token': token, 'password': password, }; }