use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)]
pub struct Search {
pub id: u64,
pub status: SearchStatus,
pub total: u64,
}
#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)]
pub enum SearchStatus {
Running,
#[default]
Stopped,
}
#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)]
pub struct SearchResult {
pub results: Vec<SearchResultItem>,
pub status: SearchStatus,
pub total: u64,
}
#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)]
pub struct SearchResultItem {
#[serde(rename = "descrLink")]
pub descr_link: String,
#[serde(rename = "fileName")]
pub file_name: String,
#[serde(rename = "fileSize")]
pub file_size: i64,
#[serde(rename = "fileUrl")]
pub file_url: String,
#[serde(rename = "nbLeechers")]
pub leechers: u64,
#[serde(rename = "nbSeeders")]
pub seeders: u64,
#[serde(rename = "siteUrl")]
pub site_url: String,
}
#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)]
pub struct SearchPlugin {
pub enabled: bool,
#[serde(rename = "fullName")]
pub full_name: String,
pub name: String,
#[serde(rename = "supportedCategories")]
pub categories: Vec<SearchCategory>,
pub url: String,
pub version: String,
}
#[derive(Debug, Deserialize, Serialize, Clone, Default, PartialEq)]
pub struct SearchCategory {
pub id: String,
pub name: String,
}