2024-12-09 19:24:46 +03:00
|
|
|
/// Represents an Item in CompareWare.
|
|
|
|
/// Each item has metadata and key-value tags for categorization.
|
2024-12-06 14:45:14 +03:00
|
|
|
use serde::{Deserialize, Serialize};
|
2025-01-03 14:15:17 +03:00
|
|
|
use std::collections::HashMap;
|
2024-12-06 14:45:14 +03:00
|
|
|
#[derive(Serialize, Deserialize, Debug, Clone)]
|
|
|
|
pub struct Item {
|
2024-12-16 20:47:24 +03:00
|
|
|
pub id: String,
|
|
|
|
pub name: String,
|
|
|
|
pub description: String,
|
2024-12-18 21:49:26 +03:00
|
|
|
pub wikidata_id: Option<String>,
|
2025-01-03 14:15:17 +03:00
|
|
|
pub custom_properties: HashMap<String, String>,
|
2024-12-17 13:39:41 +03:00
|
|
|
}
|
2025-04-04 18:47:12 +03:00
|
|
|
|
2025-04-14 17:42:04 +03:00
|
|
|
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
|
2025-04-04 18:47:12 +03:00
|
|
|
pub struct WikidataSuggestion {
|
|
|
|
pub id: String,
|
2025-04-14 17:42:04 +03:00
|
|
|
#[serde(default)]
|
2025-04-04 18:47:12 +03:00
|
|
|
pub label: String,
|
2025-04-14 17:42:04 +03:00
|
|
|
#[serde(default)]
|
|
|
|
pub description: String,
|
|
|
|
#[serde(default)]
|
|
|
|
pub title: String,
|
|
|
|
#[serde(default, rename = "display")]
|
|
|
|
pub display: DisplayInfo,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
|
|
|
|
pub struct DisplayInfo {
|
|
|
|
#[serde(default, rename = "label")]
|
|
|
|
pub label: LabelInfo,
|
|
|
|
#[serde(default, rename = "description")]
|
|
|
|
pub description: DescriptionInfo,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
|
|
|
|
pub struct LabelInfo {
|
|
|
|
#[serde(default, rename = "value")]
|
|
|
|
pub value: String,
|
|
|
|
#[serde(default, rename = "language")]
|
|
|
|
pub language: String,
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
|
|
|
|
pub struct DescriptionInfo {
|
|
|
|
#[serde(default, rename = "value")]
|
|
|
|
pub value: String,
|
|
|
|
#[serde(default, rename = "language")]
|
|
|
|
pub language: String,
|
2025-04-04 18:47:12 +03:00
|
|
|
}
|