backend/model/dto/
plants_impl.rs1use crate::model::{entity::Plants, r#enum::life_cycle::LifeCycle};
4
5use super::PlantsSummaryDto;
6
7impl From<Plants> for PlantsSummaryDto {
8 fn from(plants: Plants) -> Self {
9 let life_cycle: Vec<LifeCycle> = plants
10 .life_cycle
11 .map_or(vec![], |v| v.into_iter().flatten().collect());
12
13 let edible_parts = plants.edible_parts.map_or(vec![], |v| v);
15 let sowing_outdoors = plants.sowing_outdoors.map_or(vec![], |v| v);
16 let harvest_time = plants.harvest_time.map_or(vec![], |v| v);
17
18 Self {
19 id: plants.id,
20 unique_name: plants.unique_name,
21 common_name_en: plants.common_name_en,
22 common_name_de: plants.common_name_de,
23 spread: plants.spread,
24 life_cycle,
25 functions: plants.functions,
26 edible: plants.edible,
27 edible_parts,
28 warning: plants.warning,
29 sowing_outdoors,
30 harvest_time,
31 }
32 }
33}
34
35impl<T> From<(T, Plants)> for PlantsSummaryDto {
36 fn from((_, plants): (T, Plants)) -> Self {
37 Self::from(plants)
38 }
39}