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