43 lines
1.3 KiB
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,
|
|
};
|
|
}
|
|
} |