class StuntingData { final int? id; final int anakId; final int? perkembanganId; final DateTime tanggalPemeriksaan; final String usia; final double tinggiBadan; final double beratBadan; final String status; final String? catatan; final String? gender; final String? namaPasien; final double? lingkarKepala; StuntingData({ this.id, required this.anakId, this.perkembanganId, required this.tanggalPemeriksaan, required this.usia, required this.tinggiBadan, required this.beratBadan, required this.status, this.catatan, this.gender, this.namaPasien, this.lingkarKepala, }); factory StuntingData.fromJson(Map json) { // Helper untuk parsing integer yang bisa berupa string atau int int? parseIntValue(dynamic value) { if (value == null) return null; if (value is int) return value; if (value is String) { try { return int.parse(value); } catch (e) { print('Error parsing int value: $e'); return null; } } return null; } return StuntingData( id: parseIntValue(json['id']), anakId: parseIntValue(json['anak_id']) ?? 0, perkembanganId: parseIntValue(json['perkembangan_id']), tanggalPemeriksaan: json['tanggal'] != null ? DateTime.parse(json['tanggal']) : DateTime.now(), usia: json['usia'] ?? '', tinggiBadan: json['tinggi_badan'] != null ? double.parse(json['tinggi_badan'].toString()) : 0.0, beratBadan: json['berat_badan'] != null ? double.parse(json['berat_badan'].toString()) : 0.0, status: json['status'] ?? 'Normal', catatan: json['catatan'], gender: json['gender'] ?? 'L', namaPasien: json['nama_pasien'] ?? json['nama_anak'], lingkarKepala: json['lingkar_kepala'] != null ? double.parse(json['lingkar_kepala'].toString()) : null, ); } Map toJson() { return { 'id': id, 'anak_id': anakId, 'perkembangan_id': perkembanganId, 'tanggal': tanggalPemeriksaan.toIso8601String().split('T')[0], 'usia': usia, 'tinggi_badan': tinggiBadan, 'berat_badan': beratBadan, 'status': status, 'catatan': catatan, 'gender': gender, 'nama_pasien': namaPasien, 'lingkar_kepala': lingkarKepala, }; } }