Tambahkan dependensi dan konfigurasi awal proyek
- Tambahkan dependensi utama: GetX, Supabase, SharedPreferences - Konfigurasi struktur awal aplikasi dengan GetX - Inisialisasi layanan Supabase - Perbarui konfigurasi plugin untuk berbagai platform - Ganti template default dengan struktur aplikasi baru
This commit is contained in:
81
lib/app/data/models/user_model.dart
Normal file
81
lib/app/data/models/user_model.dart
Normal file
@ -0,0 +1,81 @@
|
||||
class UserModel {
|
||||
final String id;
|
||||
final String email;
|
||||
final String? name;
|
||||
final String? avatar;
|
||||
final String role;
|
||||
final bool isActive;
|
||||
final DateTime? lastLogin;
|
||||
final DateTime? createdAt;
|
||||
final DateTime? updatedAt;
|
||||
|
||||
UserModel({
|
||||
required this.id,
|
||||
required this.email,
|
||||
this.name,
|
||||
this.avatar,
|
||||
required this.role,
|
||||
this.isActive = true,
|
||||
this.lastLogin,
|
||||
this.createdAt,
|
||||
this.updatedAt,
|
||||
});
|
||||
|
||||
factory UserModel.fromJson(Map<String, dynamic> json) {
|
||||
return UserModel(
|
||||
id: json['id'],
|
||||
email: json['email'],
|
||||
name: json['name'],
|
||||
avatar: json['avatar'],
|
||||
role: json['role'] ?? 'WARGA',
|
||||
isActive: json['is_active'] ?? true,
|
||||
lastLogin: json['last_login'] != null
|
||||
? DateTime.parse(json['last_login'])
|
||||
: null,
|
||||
createdAt: json['CREATED_AT'] != null
|
||||
? DateTime.parse(json['CREATED_AT'])
|
||||
: null,
|
||||
updatedAt: json['UPDATED_AT'] != null
|
||||
? DateTime.parse(json['UPDATED_AT'])
|
||||
: null,
|
||||
);
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
return {
|
||||
'id': id,
|
||||
'email': email,
|
||||
'name': name,
|
||||
'avatar': avatar,
|
||||
'role': role,
|
||||
'is_active': isActive,
|
||||
'last_login': lastLogin?.toIso8601String(),
|
||||
'CREATED_AT': createdAt?.toIso8601String(),
|
||||
'UPDATED_AT': updatedAt?.toIso8601String(),
|
||||
};
|
||||
}
|
||||
|
||||
UserModel copyWith({
|
||||
String? id,
|
||||
String? email,
|
||||
String? name,
|
||||
String? avatar,
|
||||
String? role,
|
||||
bool? isActive,
|
||||
DateTime? lastLogin,
|
||||
DateTime? createdAt,
|
||||
DateTime? updatedAt,
|
||||
}) {
|
||||
return UserModel(
|
||||
id: id ?? this.id,
|
||||
email: email ?? this.email,
|
||||
name: name ?? this.name,
|
||||
avatar: avatar ?? this.avatar,
|
||||
role: role ?? this.role,
|
||||
isActive: isActive ?? this.isActive,
|
||||
lastLogin: lastLogin ?? this.lastLogin,
|
||||
createdAt: createdAt ?? this.createdAt,
|
||||
updatedAt: updatedAt ?? this.updatedAt,
|
||||
);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user