Files
voidea/flutter/lib/models/auth.dart
T

120 lines
2.8 KiB
Dart

class LoginRequest {
final String email;
final String password;
LoginRequest({required this.email, required this.password});
Map<String, dynamic> 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<String, dynamic> 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<String, dynamic> json) => AuthResponse(
accessToken: json['access_token'] as String,
refreshToken: json['refresh_token'] as String,
user: User.fromJson(json['user'] as Map<String, dynamic>),
);
}
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<String, dynamic> 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<String, dynamic> 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<String, dynamic> toJson() => {'code': code};
}
class ForgotPasswordRequest {
final String email;
ForgotPasswordRequest({required this.email});
Map<String, dynamic> toJson() => {'email': email};
}
class ResetPasswordRequest {
final String token;
final String password;
ResetPasswordRequest({required this.token, required this.password});
Map<String, dynamic> toJson() => {
'token': token,
'password': password,
};
}