MIF_E31222656/lib/screens/calendar/field_model.dart

43 lines
1.3 KiB
Dart

class Field {
final String id;
final String name;
final int plotCount;
final String userId;
Field({
required this.id,
required this.name,
required this.plotCount,
required this.userId,
});
factory Field.fromMap(Map<String, dynamic> map) {
// Validasi untuk field penting
if (map['id'] == null) {
// Jika ID null, ini masalah data yang serius. Bisa log error atau throw.
// Untuk sekarang, kita beri nilai placeholder, tapi ini perlu investigasi.
print('Error: Field ID is null for map: $map');
// throw FormatException('Field ID cannot be null. Data: $map');
}
if (map['user_id'] == null) {
print('Error: Field User ID is null for map: $map');
// throw FormatException('Field User ID cannot be null. Data: $map');
}
return Field(
id: map['id']?.toString() ?? 'error_id', // Memberikan default jika null setelah print
name: map['name']?.toString() ?? 'Lahan Tanpa Nama',
plotCount: (map['plot_count'] is int ? map['plot_count'] : int.tryParse(map['plot_count']?.toString() ?? '0')) ?? 0,
userId: map['user_id']?.toString() ?? 'error_user_id', // Memberikan default jika null setelah print
);
}
Map<String, dynamic> toMap() {
return {
'id': id,
'name': name,
'plot_count': plotCount,
'user_id': userId,
};
}
}