#![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 {todo: HomeScreenTodo},
People {people: HomeScreenPeopleNotification},
Announcement {announcement: HomeScreenAnnouncement},
Default {},
}
pub enum HomeScreenItemDataExt {
Todo {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 {verify_all_phone_number: PhoneNumber},
Verify_all_email {verify_all_email: EmailAddress},
Legacy_email_visibility {legacy_email_visibility: EmailAddress},
Default {},
}
pub enum HomeScreenTodoExt {
Verify_all_email {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 {followed: HomeScreenPeopleNotificationFollowed},
Followed_multi {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,
}