tongbal_api/channel/
types.rs1use 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}