import 'package:syncrow_app/features/auth/model/token.dart'; class UserModel { static String userUuidKey = 'userUuid'; final String? uuid; final String? email; final String? firstName; final String? lastName; final String? profilePicture; final String? phoneNumber; final bool? isEmailVerified; final String? regionName; final String? timeZone; final bool? isAgreementAccepted; UserModel({ required this.uuid, required this.email, required this.firstName, required this.lastName, required this.profilePicture, required this.phoneNumber, required this.isEmailVerified, required this.isAgreementAccepted, required this.regionName, // Add this line required this.timeZone, // Add this line }); factory UserModel.fromJson(Map json) { return UserModel( uuid: json['uuid'], email: json['email'], firstName: json['firstName'], lastName: json['lastName'], profilePicture: json['profilePicture'], phoneNumber: json['phoneNumber'], isEmailVerified: json['isEmailVerified'], isAgreementAccepted: json['isAgreementAccepted'], regionName: json['region']?['regionName'], // Extract regionName timeZone: json['timeZone']?['timeZoneOffset'], // Extract regionName ); } //uuid to json //from token factory UserModel.fromToken(Token token) { Map tempJson = Token.decodeToken(token.accessToken); return UserModel( uuid: tempJson['uuid'].toString(), email: tempJson['email'], lastName: tempJson['lastName'], firstName:tempJson['firstName'] , profilePicture: tempJson['profilePicture'], phoneNumber: null, isEmailVerified: null, isAgreementAccepted: null, regionName: tempJson['region']?['regionName'], timeZone: tempJson['timezone']?['timeZoneOffset'], ); } Map toJson() { return { 'id': uuid, 'email': email, 'lastName': lastName, 'firstName': firstName, 'photoUrl': profilePicture, 'phoneNumber': phoneNumber, 'isEmailVerified': isEmailVerified, 'isAgreementAccepted': isAgreementAccepted, }; } }