#![allow(dead_code)]
#![allow(non_snake_case)]
#![allow(non_camel_case_types)]
#![allow(unused_imports)]
use serde::{Serialize, Deserialize};
use serde_repr::{Deserialize_repr, Serialize_repr};use super::*;
pub type HomeScreenItemID = String;
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum HomeScreenItemType {
Todo_1,
People_2,
Announcement_3,
}
pub enum HomeScreenItemData {
Todo(HomeScreenTodo),
People(HomeScreenPeopleNotification),
Announcement(HomeScreenAnnouncement),
Default(()),
}
pub enum HomeScreenItemDataExt {
Todo(HomeScreenTodoExt),
Default(()),
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum AppLinkType {
None_0,
People_1,
Chat_2,
Files_3,
Wallet_4,
Git_5,
Devices_6,
Settings_7,
Teams_8,
}
pub type HomeScreenAnnouncementID = i32;
pub type HomeScreenAnnouncementVersion = i32;
pub struct HomeScreenAnnouncement {
pub id: HomeScreenAnnouncementID,
pub version: HomeScreenAnnouncementVersion,
pub appLink: AppLinkType,
pub confirmLabel: Option<String>,
pub dismissable: bool,
pub iconUrl: Option<String>,
pub text: Option<String>,
pub url: Option<String>,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum HomeScreenTodoType {
None_0,
Bio_1,
Proof_2,
Device_3,
Follow_4,
Chat_5,
Paperkey_6,
Team_7,
Folder_8,
Git_repo_9,
Team_showcase_10,
Avatar_user_11,
Avatar_team_12,
Add_phone_number_18,
Verify_all_phone_number_19,
Verify_all_email_20,
Legacy_email_visibility_21,
Add_email_22,
Annoncement_placeholder_10000,
}
pub enum HomeScreenTodo {
Verify_all_phone_number(PhoneNumber),
Verify_all_email(EmailAddress),
Legacy_email_visibility(EmailAddress),
Default(()),
}
pub enum HomeScreenTodoExt {
Verify_all_email(VerifyAllEmailTodoExt),
Default(()),
}
pub struct VerifyAllEmailTodoExt {
pub lastVerifyEmailDate: UnixTime,
}
#[derive(Serialize_repr, Deserialize_repr, Debug, Hash, PartialEq, Eq)]
#[repr(u8)]
pub enum HomeScreenPeopleNotificationType {
Followed_1,
Followed_multi_2,
}
pub struct HomeScreenPeopleNotificationFollowed {
pub followTime: Time,
pub followedBack: bool,
pub user: UserSummary,
}
pub struct HomeScreenPeopleNotificationFollowedMulti {
pub followers: Option<Vec<HomeScreenPeopleNotificationFollowed>>,
pub numOthers: i32,
}
pub enum HomeScreenPeopleNotification {
Followed(HomeScreenPeopleNotificationFollowed),
Followed_multi(HomeScreenPeopleNotificationFollowedMulti),
}
pub struct HomeScreenItem {
pub badged: bool,
pub data: HomeScreenItemData,
pub dataExt: HomeScreenItemDataExt,
}
pub struct Pics {
pub square40: Option<String>,
pub square200: Option<String>,
pub square360: Option<String>,
}
pub struct HomeUserSummary {
pub uid: UID,
pub username: Option<String>,
pub bio: Option<String>,
pub fullName: Option<String>,
pub pics: Option<Pics>,
}
pub struct HomeScreen {
pub lastViewed: Time,
pub version: i32,
pub visits: i32,
pub items: Option<Vec<HomeScreenItem>>,
pub followSuggestions: Option<Vec<HomeUserSummary>>,
pub announcementsVersion: i32,
}