use super::{
contests::ContestType,
items::Item,
pokemon::Type,
resource::{Name, NamedApiResource},
};
#[derive(Default, Debug, Clone, PartialEq, Eq, serde::Deserialize)]
pub struct Berry {
pub id: Option<i64>,
pub name: Option<String>,
pub growth_time: Option<i64>,
pub max_harvest: Option<i64>,
pub natural_gift_power: Option<i64>,
pub size: Option<i64>,
pub smoothness: Option<i64>,
pub soil_dryness: Option<i64>,
pub firmness: Option<NamedApiResource<BerryFirmness>>,
pub flavors: Option<Vec<BerryFlavorMap>>,
pub item: Option<NamedApiResource<Item>>,
pub natural_gift_type: Option<NamedApiResource<Type>>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, serde::Deserialize)]
pub struct BerryFlavorMap {
pub potency: Option<i64>,
pub flavor: Option<NamedApiResource<BerryFlavor>>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, serde::Deserialize)]
pub struct BerryFirmness {
pub id: Option<i64>,
pub name: Option<String>,
pub berries: Option<Vec<NamedApiResource<Berry>>>,
pub names: Option<Vec<Name>>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, serde::Deserialize)]
pub struct BerryFlavor {
pub id: Option<i64>,
pub name: Option<String>,
pub berries: Option<Vec<FlavorBerryMap>>,
pub contest_type: Option<NamedApiResource<ContestType>>,
pub names: Option<Vec<Name>>,
}
#[derive(Default, Debug, Clone, PartialEq, Eq, serde::Deserialize)]
pub struct FlavorBerryMap {
pub potency: Option<i64>,
pub berry: Option<NamedApiResource<Berry>>,
}