0661016827
- Replace Email+Password login with Phone+OTP flow - Remove RegisterCubit and registration screens (email verification) - Remove ResetPasswordCubit and reset password screens - Add phone normalization and international dial code support - Update LoginCubit with sendCode/resend cooldown logic - Add new widgets: phone prefix selector, confirm sheet - Update all auth API endpoints: /otp/send, /phone-session - Update form inputs: Email -> Phone with E.164 validation - Update tests for new auth flow
42 lines
936 B
Dart
42 lines
936 B
Dart
class UserResponse {
|
|
final String id;
|
|
final String username;
|
|
final String? phone;
|
|
final String? avatarUrl;
|
|
final String? bio;
|
|
|
|
const UserResponse({
|
|
required this.id,
|
|
required this.username,
|
|
this.phone,
|
|
this.avatarUrl,
|
|
this.bio,
|
|
});
|
|
|
|
factory UserResponse.fromJson(Map<String, dynamic> json) {
|
|
return UserResponse(
|
|
id: json['id'] as String,
|
|
username: json['username'] as String,
|
|
phone: json['phone'] as String?,
|
|
avatarUrl: json['avatar_url'] as String?,
|
|
bio: json['bio'] as String?,
|
|
);
|
|
}
|
|
}
|
|
|
|
class UserUpdateRequest {
|
|
final String? username;
|
|
final String? avatarUrl;
|
|
final String? bio;
|
|
|
|
const UserUpdateRequest({this.username, this.avatarUrl, this.bio});
|
|
|
|
Map<String, dynamic> toJson() {
|
|
return {
|
|
if (username != null) 'username': username,
|
|
if (avatarUrl != null) 'avatar_url': avatarUrl,
|
|
if (bio != null) 'bio': bio,
|
|
};
|
|
}
|
|
}
|