class User { final String id; final String mobileNumber; final String fullName; final String role; // 'manager' or 'member' final String? createdBy; // Manager who created this account final bool isActive; final DateTime createdAt; final DateTime updatedAt; User({ required this.id, required this.mobileNumber, required this.fullName, required this.role, this.createdBy, required this.isActive, required this.createdAt, required this.updatedAt, }); factory User.fromJson(Map json) { return User( id: json['id'] ?? '', mobileNumber: json['mobile_number'] ?? '', fullName: json['full_name'] ?? '', role: json['role'] ?? 'member', createdBy: json['created_by'], isActive: json['is_active'] ?? true, createdAt: json['created_at'] != null ? DateTime.parse(json['created_at']) : DateTime.now(), updatedAt: json['updated_at'] != null ? DateTime.parse(json['updated_at']) : DateTime.now(), ); } Map toJson() { return { 'id': id, 'mobile_number': mobileNumber, 'full_name': fullName, 'role': role, 'created_by': createdBy, 'is_active': isActive, 'created_at': createdAt.toIso8601String(), 'updated_at': updatedAt.toIso8601String(), }; } User copyWith({ String? id, String? mobileNumber, String? fullName, String? role, String? createdBy, bool? isActive, DateTime? createdAt, DateTime? updatedAt, }) { return User( id: id ?? this.id, mobileNumber: mobileNumber ?? this.mobileNumber, fullName: fullName ?? this.fullName, role: role ?? this.role, createdBy: createdBy ?? this.createdBy, isActive: isActive ?? this.isActive, createdAt: createdAt ?? this.createdAt, updatedAt: updatedAt ?? this.updatedAt, ); } }