143 lines
3.1 KiB
Rust
143 lines
3.1 KiB
Rust
use std::collections::HashMap;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
use uuid::Uuid;
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct LoginRequest {
|
|
pub username: String,
|
|
pub password: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct LoginResponse {
|
|
pub token: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct EmptyResponse {}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct Household {
|
|
pub name: String,
|
|
pub members: Vec<Uuid>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct Households {
|
|
pub households: HashMap<Uuid, Household>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct CreateHouseholdRequest {
|
|
pub name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct CreateHouseholdResponse {
|
|
pub id: Uuid,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RenameHouseholdRequest {
|
|
pub name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct AddToHouseholdRequest {
|
|
pub user: Uuid,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct UserInfo {
|
|
pub name: String,
|
|
pub id: Uuid,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct CreateIngredientRequest {
|
|
pub name: String,
|
|
pub unit: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct CreateIngredientResponse {
|
|
pub id: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct IngredientInfo {
|
|
pub name: String,
|
|
pub unit: Option<String>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct IngredientList {
|
|
pub ingredients: HashMap<i64, IngredientInfo>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct EditIngredientRequest {
|
|
pub name: Option<String>,
|
|
pub unit: Option<String>,
|
|
#[serde(default)]
|
|
pub has_unit: bool,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct CreateRecipeRequest {
|
|
pub person_count: u32,
|
|
pub name: String,
|
|
pub rating: u8,
|
|
pub ingredients: Vec<(i64, f64)>,
|
|
pub steps: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct CreateRecipeResponse {
|
|
pub id: i64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct ListRecipesResponse {
|
|
pub recipes: Vec<(i64, String, u8)>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RecipeInfo {
|
|
pub name: String,
|
|
pub rating: u8,
|
|
pub person_count: u32,
|
|
pub steps: String,
|
|
pub ingredients: Vec<(i64, IngredientInfo, f64)>,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RecipeRenameRequest {
|
|
pub name: String,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RecipeIngredientEditRequest {
|
|
pub amount: f64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct AddRecipeIngredientRequest {
|
|
pub amount: f64,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RecipeEditStepsRequest {
|
|
pub steps: String
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RecipeEditRating {
|
|
pub rating: u8,
|
|
}
|
|
|
|
#[derive(Serialize, Deserialize, Clone, Debug)]
|
|
pub struct RecipeEditPersonCount {
|
|
pub person_count: u32,
|
|
}
|