recipes/api/src/domain/recipe/types.rs

32 lines
739 B
Rust

use crate::domain::{ingredient::types::Ingredient, misc_types::Lang};
#[derive(Debug, Clone, Serialize)]
pub struct Recipe {
pub key: String,
pub lang: Lang,
pub name: String,
pub instructions: Vec<String>,
pub ingredients: Vec<RecipeIngredient>,
}
#[derive(Debug, Clone, Serialize)]
pub struct RecipeIngredient {
#[serde(flatten)]
pub ingredient: Ingredient,
#[serde(flatten)]
pub measure: Measure,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
#[serde(tag = "measure", content = "amount")]
pub enum Measure {
#[serde(rename = "g")]
Gram(u32),
#[serde(rename = "kg")]
KiloGram(u32),
#[serde(rename = "ml")]
MilliLiter(u32),
#[serde(rename = "l")]
Liter(u32),
}