use serde::{Deserialize, Serialize};
mod categories;
mod config;
mod downloads;
mod history;
mod queue;
mod rss;
mod scheduler;
mod servers;
mod system;
pub use categories::*;
pub use config::*;
pub use downloads::*;
pub use history::*;
pub use queue::*;
pub use rss::*;
pub use scheduler::*;
pub use servers::*;
pub use system::*;
#[derive(Debug, Deserialize, Serialize, utoipa::ToSchema)]
pub struct DeleteDownloadQuery {
#[serde(default)]
pub delete_files: bool,
}
#[derive(Debug, Deserialize, Serialize, utoipa::ToSchema)]
pub struct HistoryQuery {
pub limit: Option<i64>,
pub offset: Option<i64>,
pub status: Option<String>,
}
#[derive(Debug, Deserialize, Serialize, utoipa::ToSchema)]
pub struct ClearHistoryQuery {
pub before: Option<i64>,
pub status: Option<String>,
}
#[derive(Debug, Deserialize, Serialize, utoipa::ToSchema)]
pub struct SetSpeedLimitRequest {
pub limit_bps: Option<u64>,
}
#[derive(Debug, Deserialize, Serialize, utoipa::ToSchema)]
pub struct AddRssFeedRequest {
pub name: String,
#[serde(flatten)]
pub config: crate::config::RssFeedConfig,
}
#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct RssFeedResponse {
pub id: i64,
pub name: String,
#[serde(flatten)]
pub config: crate::config::RssFeedConfig,
}
#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct CheckRssFeedResponse {
pub queued: usize,
}
#[derive(Debug, Serialize, utoipa::ToSchema)]
pub struct ScheduleRuleResponse {
pub id: i64,
#[serde(flatten)]
pub rule: crate::config::ScheduleRule,
}