rs_plugin_lookup_interfaces/
lib.rs

1use std::collections::HashMap;
2
3use plugin_request_interfaces::RsRequest;
4use rs_plugin_common_interfaces::PluginCredential;
5use serde::{Deserialize, Serialize};
6use strum_macros::EnumString;
7
8#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString, Default)]
9#[serde(rename_all = "camelCase")] 
10#[strum(serialize_all = "camelCase")]
11pub enum RsLookupResult {
12    Requests(Vec<RsRequest>),
13    NotFound,
14    #[default]
15    NotApplicable
16}
17
18#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
19#[serde(rename_all = "camelCase")] 
20pub struct RsLookupEpisode {
21    pub serie: String,
22    pub imdb: Option<String>,
23    pub slug: Option<String>,
24    pub tmdb: Option<u64>,
25    pub trakt: Option<u64>,
26    pub tvdb: Option<u64>,
27    pub otherids: Option<String>,
28
29    pub season: u32,
30    pub number: Option<u32>
31}
32
33#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Default)]
34#[serde(rename_all = "camelCase")] 
35pub struct RsLookupMovie {
36    pub name: String,
37    pub imdb: Option<String>,
38    pub slug: Option<String>,
39    pub tmdb: Option<u64>,
40    pub trakt: Option<u64>,
41    pub otherids: Option<String>,
42}
43
44#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
45#[serde(rename_all = "camelCase")] 
46pub struct RsLookupWrapper {
47    pub query: RsLookupQuery,
48    pub credential: Option<PluginCredential>,
49    pub params: Option<HashMap<String, String>>
50
51}
52
53
54#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, strum_macros::Display,EnumString)]
55#[serde(rename_all = "camelCase")] 
56#[strum(serialize_all = "camelCase")]
57pub enum RsLookupQuery {
58    Episode(RsLookupEpisode),
59    Movie(RsLookupMovie),
60}
61
62#[cfg(test)]
63mod tests {
64    use super::*;
65
66    #[test]
67    fn it_works() {
68        
69    }
70}