// SPDX-FileCopyrightText: 2024 Simon Bruder // // SPDX-License-Identifier: AGPL-3.0-or-later use serde::{Deserialize, Serialize}; use uuid::Uuid; #[derive(Clone, Debug, Serialize, sqlx::FromRow)] pub struct Item { pub id: Uuid, pub name: Option, pub parent: Option, pub class: Uuid, } #[derive(Debug, Deserialize)] pub struct NewItem { #[serde(default)] pub name: Option, #[serde(default)] pub parent: Option, pub class: Uuid, } #[derive(Clone, Debug, Serialize)] pub struct ItemClass { pub id: Uuid, pub name: String, #[serde(skip_serializing_if = "Option::is_none")] pub parent: Option, } #[derive(Debug, Deserialize)] pub struct NewItemClass { pub name: String, #[serde(default)] pub parent: Option, }