Files
2025-07-18 22:24:01 +02:00

51 lines
1.5 KiB
Dart

// Assumiamo che la classe VinePlant sia stata definita in un file 'vine_plant.dart'
import 'vine.plant.dart';
class Row {
final int id;
final int vineyardId;
final int rowNum;
final double length;
final List<VinePlant>? vinePlants;
// Costruttore con parametri nominati.
// 'vinePlants' è opzionale perché è nullable.
Row({
required this.id,
required this.vineyardId,
required this.rowNum,
required this.length,
this.vinePlants,
});
// ---
/// Converte l'oggetto Row in una mappa per la serializzazione JSON.
Map<String, dynamic> toJson() {
return {
'id': id,
'vineyardId': vineyardId,
'rowNum': rowNum,
'length': length,
// Se la lista non è null, la converte in una lista di mappe
'vinePlants': vinePlants?.map((plant) => plant.toJson()).toList(),
};
}
/// Crea un oggetto Row da una mappa (es. da una risposta JSON).
factory Row.fromJson(Map<String, dynamic> json) {
// La lista viene creata solo se esiste e non è null nella mappa JSON
final List<dynamic>? plantsJson = json['vinePlants'];
final List<VinePlant>? plantsList = plantsJson != null
? plantsJson.map((json) => VinePlant.fromJson(json as Map<String, dynamic>)).toList()
: null;
return Row(
id: json['id'] as int,
vineyardId: json['vineyardId'] as int,
rowNum: json['rowNum'] as int,
length: (json['length'] as num).toDouble(),
vinePlants: plantsList,
);
}
}