use crate::newtypes::{LocalUserId, PersonId}; use serde::{Deserialize, Serialize}; #[cfg(feature = "full")] use crate::schema::local_user; #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "local_user")] pub struct LocalUser { pub id: LocalUserId, pub person_id: PersonId, pub password_encrypted: String, pub email: Option, pub show_nsfw: bool, pub theme: String, pub default_sort_type: i16, pub default_listing_type: i16, pub lang: String, pub show_avatars: bool, pub send_notifications_to_email: bool, pub validator_time: chrono::NaiveDateTime, pub show_bot_accounts: bool, pub show_scores: bool, pub show_read_posts: bool, pub show_new_post_notifs: bool, pub email_verified: bool, pub accepted_application: bool, } // TODO redo these, check table defaults #[derive(Clone, Default)] #[cfg_attr(feature = "full", derive(Insertable, AsChangeset))] #[cfg_attr(feature = "full", table_name = "local_user")] pub struct LocalUserForm { pub person_id: Option, pub password_encrypted: Option, pub email: Option>, pub show_nsfw: Option, pub theme: Option, pub default_sort_type: Option, pub default_listing_type: Option, pub lang: Option, pub show_avatars: Option, pub send_notifications_to_email: Option, pub show_bot_accounts: Option, pub show_scores: Option, pub show_read_posts: Option, pub show_new_post_notifs: Option, pub email_verified: Option, pub accepted_application: Option, } /// A local user view that removes password encrypted #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "local_user")] pub struct LocalUserSettings { pub id: LocalUserId, pub person_id: PersonId, pub email: Option, pub show_nsfw: bool, pub theme: String, pub default_sort_type: i16, pub default_listing_type: i16, pub lang: String, pub show_avatars: bool, pub send_notifications_to_email: bool, pub validator_time: chrono::NaiveDateTime, pub show_bot_accounts: bool, pub show_scores: bool, pub show_read_posts: bool, pub show_new_post_notifs: bool, pub email_verified: bool, pub accepted_application: bool, }