2023-05-29 00:15:55 +02:00
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
2023-05-19 11:23:44 +02:00
|
|
|
use serde::{Deserialize, Serialize};
|
2023-05-29 00:15:55 +02:00
|
|
|
use uuid::Uuid;
|
2023-05-19 11:23:44 +02:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct LoginRequest {
|
|
|
|
|
pub username: String,
|
|
|
|
|
pub password: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct LoginResponse {
|
|
|
|
|
pub token: String,
|
|
|
|
|
}
|
2023-05-29 00:15:55 +02:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct EmptyResponse {}
|
|
|
|
|
|
2023-05-29 15:35:30 +02:00
|
|
|
#[derive(Serialize, Deserialize, Clone)]
|
2023-05-29 00:15:55 +02:00
|
|
|
pub struct Household {
|
|
|
|
|
pub name: String,
|
|
|
|
|
pub members: Vec<Uuid>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct Households {
|
|
|
|
|
pub households: HashMap<Uuid, Household>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct CreateHouseholdRequest {
|
|
|
|
|
pub name: String,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct CreateHouseholdResponse {
|
|
|
|
|
pub id: Uuid,
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-29 22:08:43 +02:00
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct RenameHouseholdRequest {
|
|
|
|
|
pub name: String,
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-29 00:15:55 +02:00
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct AddToHouseholdRequest {
|
|
|
|
|
pub user: Uuid,
|
|
|
|
|
}
|
2023-05-29 17:55:42 +02:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct UserInfo {
|
|
|
|
|
pub name: String,
|
|
|
|
|
pub id: Uuid,
|
|
|
|
|
}
|
2023-05-29 22:01:49 +02:00
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct CreateIngredientRequest {
|
|
|
|
|
pub name: String,
|
|
|
|
|
pub unit: Option<String>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct CreateIngredientResponse {
|
|
|
|
|
pub id: i64,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct IngredientInfo {
|
|
|
|
|
pub name: String,
|
|
|
|
|
pub unit: Option<String>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct IngredientList {
|
|
|
|
|
pub ingredients: HashMap<i64, IngredientInfo>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Serialize, Deserialize)]
|
|
|
|
|
pub struct EditIngredientRequest {
|
|
|
|
|
pub name: Option<String>,
|
|
|
|
|
pub unit: Option<String>,
|
|
|
|
|
#[serde(default)]
|
|
|
|
|
pub has_unit: bool,
|
|
|
|
|
}
|