use crate::newtypes::{DbUrl, PersonId}; use serde::{Deserialize, Serialize}; #[cfg(feature = "full")] use crate::schema::{person, person_alias_1, person_alias_2}; #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "person")] pub struct Person { pub id: PersonId, pub name: String, pub display_name: Option, pub avatar: Option, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub actor_id: DbUrl, pub bio: Option, pub local: bool, pub private_key: Option, pub public_key: String, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, pub matrix_user_id: Option, pub admin: bool, pub bot_account: bool, pub ban_expires: Option, } /// A safe representation of person, without the sensitive info #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "person")] pub struct PersonSafe { pub id: PersonId, pub name: String, pub display_name: Option, pub avatar: Option, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub actor_id: DbUrl, pub bio: Option, pub local: bool, pub banner: Option, pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, pub matrix_user_id: Option, pub admin: bool, pub bot_account: bool, pub ban_expires: Option, } #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "person_alias_1")] pub struct PersonAlias1 { pub id: PersonId, pub name: String, pub display_name: Option, pub avatar: Option, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub actor_id: DbUrl, pub bio: Option, pub local: bool, pub private_key: Option, pub public_key: String, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, pub matrix_user_id: Option, pub admin: bool, pub bot_account: bool, pub ban_expires: Option, } #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "person_alias_1")] pub struct PersonSafeAlias1 { pub id: PersonId, pub name: String, pub display_name: Option, pub avatar: Option, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub actor_id: DbUrl, pub bio: Option, pub local: bool, pub banner: Option, pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, pub matrix_user_id: Option, pub admin: bool, pub bot_account: bool, pub ban_expires: Option, } #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "person_alias_2")] pub struct PersonAlias2 { pub id: PersonId, pub name: String, pub display_name: Option, pub avatar: Option, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub actor_id: DbUrl, pub bio: Option, pub local: bool, pub private_key: Option, pub public_key: String, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, pub matrix_user_id: Option, pub admin: bool, pub bot_account: bool, pub ban_expires: Option, } #[derive(Clone, PartialEq, Debug, Serialize, Deserialize)] #[cfg_attr(feature = "full", derive(Queryable, Identifiable))] #[cfg_attr(feature = "full", table_name = "person_alias_1")] pub struct PersonSafeAlias2 { pub id: PersonId, pub name: String, pub display_name: Option, pub avatar: Option, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub actor_id: DbUrl, pub bio: Option, pub local: bool, pub banner: Option, pub deleted: bool, pub inbox_url: DbUrl, pub shared_inbox_url: Option, pub matrix_user_id: Option, pub admin: bool, pub bot_account: bool, pub ban_expires: Option, } #[derive(Clone, Default)] #[cfg_attr(feature = "full", derive(Insertable, AsChangeset))] #[cfg_attr(feature = "full", table_name = "person")] pub struct PersonForm { pub name: String, pub display_name: Option>, pub avatar: Option>, pub banned: Option, pub published: Option, pub updated: Option, pub actor_id: Option, pub bio: Option>, pub local: Option, pub private_key: Option>, pub public_key: Option, pub last_refreshed_at: Option, pub banner: Option>, pub deleted: Option, pub inbox_url: Option, pub shared_inbox_url: Option>, pub matrix_user_id: Option>, pub admin: Option, pub bot_account: Option, pub ban_expires: Option>, }