use serde::{Deserialize, Serialize};
use serde_json::Value;
pub mod master {
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MasterInfo {
pub exp: Exp,
pub follower_num: i64,
pub glory_count: i64,
pub info: Info,
pub link_group_num: i64,
pub medal_name: String,
pub pendant: String,
pub room_id: u64,
pub room_news: RoomNews,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Exp {
pub master_level: MasterLevel,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MasterLevel {
pub color: i64,
pub current: Vec<i64>,
pub level: i64,
pub next: Vec<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Info {
pub face: String,
pub gender: i64,
pub official_verify: OfficialVerify,
pub uid: i64,
pub uname: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct OfficialVerify {
pub desc: String,
#[serde(rename = "type")]
pub r#type: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RoomNews {
pub content: String,
pub ctime: String,
pub ctime_text: String,
}
}
pub mod room {
use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RoomInfo {
pub allow_change_area_time: i64,
pub allow_upload_cover_time: i64,
pub area_id: i64,
pub area_name: String,
pub area_pendants: String,
pub attention: i64,
pub background: String,
pub battle_id: i64,
pub description: String,
pub hot_words: Vec<String>,
pub hot_words_status: i64,
pub is_anchor: i64,
pub is_portrait: bool,
pub is_strict_room: bool,
pub keyframe: String,
pub live_status: i64,
pub live_time: String,
pub new_pendants: NewPendants,
pub old_area_id: i64,
pub online: i64,
pub parent_area_id: i64,
pub parent_area_name: String,
pub pendants: String,
pub pk_id: i64,
pub pk_status: i64,
pub room_id: u64,
pub room_silent_level: i64,
pub room_silent_second: i64,
pub room_silent_type: String,
pub short_id: i64,
pub studio_info: StudioInfo,
pub tags: String,
pub title: String,
pub uid: i64,
pub up_session: String,
pub user_cover: String,
pub verify: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NewPendants {
pub badge: Option<Badge>,
pub frame: Frame,
pub mobile_badge: Option<Badge>,
pub mobile_frame: Frame,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Badge {
pub name: String,
pub position: i64,
pub value: String,
pub desc: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Frame {
pub area: i64,
pub area_old: i64,
pub bg_color: String,
pub bg_pic: String,
pub desc: String,
pub name: String,
pub position: i64,
pub use_old_area: bool,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StudioInfo {
pub master_list: Vec<Value>, pub status: i64,
}
}
pub mod area {
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LiveArea {
pub id: i32, pub name: String, pub list: Vec<SubLiveArea>, }
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SubLiveArea {
pub id: String, pub parent_id: String, pub old_area_id: String, pub name: String, pub act_id: String, pub pk_status: String, pub hot_status: i32, pub lock_status: String, pub pic: String, pub parent_name: String, pub area_type: i32,
}
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StartResponse {
pub change: i64,
pub live_key: String,
pub need_face_auth: bool,
pub notice: Notice,
pub protocols: Vec<Protocols>,
pub qr: String,
pub room_type: i64,
pub rtmp: Rtmp,
pub rtmp_backup: Option<Value>,
pub service_source: String,
pub status: String,
pub sub_session_key: String,
pub try_time: String,
pub up_stream_extra: UpStreamExtra,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Notice {
pub button_text: String,
pub button_url: String,
pub msg: String,
pub status: i64,
pub title: String,
#[serde(rename = "type")]
pub r#type: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Protocols {
pub addr: String,
pub code: String,
pub new_link: String,
pub protocol: String,
pub provider: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Rtmp {
pub addr: String,
pub code: String,
pub new_link: String,
pub provider: String,
#[serde(rename = "type")]
pub r#type: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UpStreamExtra {
pub isp: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct StopResponse {
pub change: i64,
pub status: String,
}