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 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 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, ); } }