pub mod creation;
pub mod general;
pub mod limits;
pub mod notifications;
pub mod torrent;
pub mod user;
pub mod webdownload;
use crate::data::{
limits::{ActiveLimitStatus, CooldownLimitStatus, MonthlyLimitStatus},
torrent::TorrentCreationResponse,
torrent::{TorrentData, TorrentMap, TorrentMeta, TorrentStatus},
user::{Job, UserProfile},
webdownload::{HosterInfo, WebdownloadCreationResponse, WebdownloadStatus},
};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
#[cfg_attr(feature = "specta", derive(specta::Type))]
#[serde(untagged)]
pub enum ApiDataResponse {
Message(String),
TorrentCache(Box<TorrentData>),
TorrentStatusList(Box<Vec<TorrentStatus>>),
TorrentMeta(Box<TorrentMeta>),
TorrentMap(TorrentMap),
UserData(Box<UserProfile>),
Jobs(Box<Vec<Job>>),
TorrentCreation(TorrentCreationResponse),
ActiveLimit(ActiveLimitStatus),
MonthlyLimit(MonthlyLimitStatus),
CooldownLimit(CooldownLimitStatus),
WebdownloadCreation(WebdownloadCreationResponse),
WebdownloadList(Box<Vec<WebdownloadStatus>>),
HosterInfoList(Box<Vec<HosterInfo>>),
}