backend/model/dto/
plants_impl.rs
use crate::model::{entity::Plants, r#enum::life_cycle::LifeCycle};
use super::PlantsSummaryDto;
impl From<Plants> for PlantsSummaryDto {
fn from(plants: Plants) -> Self {
let life_cycle: Vec<LifeCycle> = plants
.life_cycle
.map_or(vec![], |v| v.into_iter().flatten().collect());
let edible_parts = plants.edible_parts.map_or(vec![], |v| v);
let sowing_outdoors = plants.sowing_outdoors.map_or(vec![], |v| v);
let harvest_time = plants.harvest_time.map_or(vec![], |v| v);
Self {
id: plants.id,
unique_name: plants.unique_name,
common_name_en: plants.common_name_en,
common_name_de: plants.common_name_de,
spread: plants.spread,
life_cycle,
functions: plants.functions,
edible: plants.edible,
edible_parts,
warning: plants.warning,
sowing_outdoors,
harvest_time,
}
}
}
impl<T> From<(T, Plants)> for PlantsSummaryDto {
fn from((_, plants): (T, Plants)) -> Self {
Self::from(plants)
}
}