use std::collections::HashMap;
use crate::request::RsRequest;
use crate::PluginCredential;
use serde::{Deserialize, Serialize};
use strum_macros::EnumString;
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString, Default)]
#[serde(rename_all = "camelCase")]
#[strum(serialize_all = "camelCase")]
pub enum RsLookupSourceResult {
Requests(Vec<RsRequest>),
NotFound,
#[default]
NotApplicable
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct RsLookupEpisode {
pub serie: String,
pub imdb: Option<String>,
pub slug: Option<String>,
pub tmdb: Option<u64>,
pub trakt: Option<u64>,
pub tvdb: Option<u64>,
pub otherids: Option<String>,
pub season: u32,
pub number: Option<u32>
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
#[serde(rename_all = "camelCase")]
pub struct RsLookupMovie {
pub name: String,
pub imdb: Option<String>,
pub slug: Option<String>,
pub tmdb: Option<u64>,
pub trakt: Option<u64>,
pub otherids: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "camelCase")]
pub struct RsLookupWrapper {
pub query: RsLookupQuery,
pub credential: Option<PluginCredential>,
pub params: Option<HashMap<String, String>>
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString)]
#[serde(rename_all = "camelCase")]
#[strum(serialize_all = "camelCase")]
pub enum RsLookupQuery {
Episode(RsLookupEpisode),
Movie(RsLookupMovie),
}