use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionCommon {
pub id: u32,
pub r#type: u32,
pub creator: Option<Creator>,
pub summary: String,
pub created_at: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Creator {
pub username: String,
pub nickname: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionPerson {
pub id: u32,
pub r#type: u32,
pub creator: Option<Creator>,
pub summary: String,
pub created_at: String,
pub data: Option<std::collections::HashMap<String, RevisionPersonDataItem>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionPersonDataItem {
pub prsn_infobox: String,
pub prsn_summary: String,
pub profession: PersonRevisionProfession,
pub extra: RevisionExtra,
pub prsn_name: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PersonRevisionProfession {
pub producer: Option<String>,
pub mangaka: Option<String>,
pub artist: Option<String>,
pub seiyu: Option<String>,
pub writer: Option<String>,
pub illustrator: Option<String>,
pub actor: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionExtra {
pub img: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionCharacter {
pub id: u32,
pub r#type: u32,
pub creator: Option<Creator>,
pub summary: String,
pub created_at: String,
pub data: Option<std::collections::HashMap<String, RevisionCharacterDataItem>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionCharacterDataItem {
pub infobox: String,
pub summary: String,
pub name: String,
pub extra: RevisionExtra,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionSubject {
pub id: u32,
pub r#type: u32,
pub creator: Option<Creator>,
pub summary: String,
pub created_at: String,
pub data: Option<RevisionSubjectData>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionSubjectData {
pub field_eps: u32,
pub field_infobox: String,
pub field_summary: String,
pub name: String,
pub name_cn: String,
pub platform: u32,
pub subject_id: u32,
pub r#type: u32,
pub type_id: u32,
pub vote_field: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RevisionEpisode {
pub id: u32,
pub r#type: u32,
pub creator: Option<Creator>,
pub summary: String,
pub created_at: String,
pub data: Option<serde_json::Value>,
}