use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct Area {
pub id: i32,
pub name: String,
}
impl From<(i32, String)> for Area {
fn from(p: (i32, String)) -> Self {
Area { id: p.0, name: p.1 }
}
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct AreaList {
pub areas: Vec<Area>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct Category {
pub id: i32,
pub name: String,
pub area_id: i32,
}
impl From<(i32, String, i32)> for Category {
fn from(a: (i32, String, i32)) -> Self {
Category {
id: a.0,
name: a.1,
area_id: a.2,
}
}
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct AreaCategories {
pub id: i32,
pub name: String,
pub categories: Vec<Category>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct CategoryList {
pub areas: Vec<AreaCategories>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct NewItem {
pub category_id: i32,
pub name: String,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct Item {
pub id: i32,
pub name: String,
pub category_id: i32,
}
impl From<(i32, String, i32)> for Item {
fn from(i: (i32, String, i32)) -> Self {
Item {
id: i.0,
name: i.1,
category_id: i.2,
}
}
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct SearchRequest {
pub category: Option<i32>,
pub q: Option<String>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct CategoryItems {
pub id: i32,
pub name: String,
pub items: Vec<Item>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct AreaCategoryItems {
pub id: i32,
pub name: String,
pub categories: Vec<CategoryItems>,
}
#[derive(Clone, Debug, Deserialize, Serialize, PartialEq, Eq)]
pub struct ItemsList {
pub areas: Vec<AreaCategoryItems>,
}