+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeImage {
+ pub recipe_id: i64,
+ pub image: Vec<u8>,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeImageReply {
+ pub image_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct RemoveRecipeImage {
+ pub image_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeIngredient {
+ pub group_id: i64,
+ pub name: String,
+ pub quantity_value: Option<f64>,
+ pub quantity_unit: String,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeIngredientReply {
+ pub ingredient_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct RemoveRecipeIngredient {
+ pub group_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct SetRecipeIngredientsOrder {
+ pub group_id: i64,
+ pub ingredient_ids: Vec<i64>,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeGroup {
+ pub recipe_id: i64,
+ pub name: String,
+ pub quantity_value: Option<f64>,
+ pub quantity_unit: String,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeGroupReply {
+ pub group_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct RemoveRecipeGroupReply {
+ pub group_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct SetRecipeGroupsOrder {
+ pub recipe_id: i64,
+ pub group_ids: Vec<i64>,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeStep {
+ pub group_id: i64,
+ pub name: String,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct AddRecipeStepReply {
+ pub step_id: i64,
+}
+
+#[derive(Serialize, Deserialize, Clone)]
+pub struct RemoveRecipeStep {
+ pub step_id: i64,
+}