Skip to main content

tongbal_api/channel/
types.rs

1use serde::{Deserialize, Serialize};
2use url::Url;
3
4use crate::{channel::Tier, types::ChannelId};
5
6#[derive(Debug, Deserialize, Serialize)]
7#[serde(rename_all = "camelCase")]
8pub struct Channel {
9    pub channel_id: ChannelId,
10    pub channel_name: String,
11    pub channel_image_url: Option<Url>,
12    pub follower_count: u64,
13    pub verified_mark: bool,
14}
15
16#[derive(Debug, Deserialize, Serialize)]
17#[serde(rename_all = "camelCase")]
18pub struct Moderator {
19    pub manager_channel_id: ChannelId,
20    pub manager_channel_name: String,
21    pub user_role: UserRole,
22    pub created_date: String,
23}
24
25#[derive(Debug, Deserialize, Serialize)]
26#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
27pub enum UserRole {
28    StreamingChannelOwner,
29    StreamingChannelManager,
30    StreamingChatManager,
31    StreamingSettlementManager,
32}
33
34#[derive(Debug, Deserialize, Serialize)]
35#[serde(rename_all = "camelCase")]
36pub struct Follower {
37    pub channel_id: ChannelId,
38    pub channel_name: String,
39    pub created_date: String,
40}
41
42#[derive(Debug, Deserialize, Serialize)]
43#[serde(rename_all = "camelCase")]
44pub struct Subscriber {
45    pub channel_id: ChannelId,
46    pub channel_name: String,
47    pub month: u64,
48    pub tier_no: Tier,
49    pub created_date: String,
50}
51
52pub enum Sort {
53    RECENT,
54    LONGER,
55}
56
57impl Sort {
58    pub fn as_str(&self) -> &str {
59        match self {
60            Self::RECENT => "RECENT",
61            Self::LONGER => "LONGER",
62        }
63    }
64}