36 lines
761 B
Dart
36 lines
761 B
Dart
import 'breed_catalog.dart';
|
|
import 'hen.dart';
|
|
|
|
class BreedSetting {
|
|
final String breedId;
|
|
List<Hen> hens;
|
|
|
|
BreedSetting({
|
|
required this.breedId,
|
|
required this.hens,
|
|
});
|
|
|
|
Map<String, dynamic> toMap() {
|
|
return {
|
|
'breedId': breedId,
|
|
'hens': hens.map((e) => e.toMap()).toList(),
|
|
};
|
|
}
|
|
|
|
factory BreedSetting.fromMap(Map<String, dynamic> map) {
|
|
return BreedSetting(
|
|
breedId: map['breedId'],
|
|
hens: ((map['hens'] ?? []) as List)
|
|
.map((e) => Hen.fromMap(Map<String, dynamic>.from(e)))
|
|
.toList(),
|
|
);
|
|
}
|
|
|
|
int get activeHensCount {
|
|
return hens.where((hen) => hen.isLaying).length;
|
|
}
|
|
|
|
double get dailyProduction =>
|
|
activeHensCount * breedFromId(breedId).eggsPerHenPerDay;
|
|
}
|