use crate::{ schema::{user_, user_alias_1, user_alias_2}, Url, }; use serde::Serialize; #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_"] pub struct User_ { pub id: i32, pub name: String, pub preferred_username: Option, pub password_encrypted: String, pub email: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: 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 matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub private_key: Option, pub public_key: Option, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, } /// A safe representation of user, without the sensitive info #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_"] pub struct UserSafe { pub id: i32, pub name: String, pub preferred_username: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub banner: Option, pub deleted: bool, } /// A safe user view with only settings #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_"] pub struct UserSafeSettings { pub id: i32, pub name: String, pub preferred_username: Option, pub email: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: 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 matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_alias_1"] pub struct UserAlias1 { pub id: i32, pub name: String, pub preferred_username: Option, pub password_encrypted: String, pub email: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: 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 matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub private_key: Option, pub public_key: Option, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_alias_1"] pub struct UserSafeAlias1 { pub id: i32, pub name: String, pub preferred_username: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub banner: Option, pub deleted: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_alias_2"] pub struct UserAlias2 { pub id: i32, pub name: String, pub preferred_username: Option, pub password_encrypted: String, pub email: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: 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 matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub private_key: Option, pub public_key: Option, pub last_refreshed_at: chrono::NaiveDateTime, pub banner: Option, pub deleted: bool, } #[derive(Clone, Queryable, Identifiable, PartialEq, Debug, Serialize)] #[table_name = "user_alias_2"] pub struct UserSafeAlias2 { pub id: i32, pub name: String, pub preferred_username: Option, pub avatar: Option, pub admin: bool, pub banned: bool, pub published: chrono::NaiveDateTime, pub updated: Option, pub matrix_user_id: Option, pub actor_id: Url, pub bio: Option, pub local: bool, pub banner: Option, pub deleted: bool, } #[derive(Insertable, AsChangeset, Clone)] #[table_name = "user_"] pub struct UserForm { pub name: String, pub preferred_username: Option>, pub password_encrypted: String, pub admin: bool, pub banned: Option, pub email: Option>, pub avatar: Option>, pub published: Option, pub updated: 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 matrix_user_id: Option>, pub actor_id: Option, pub bio: Option>, pub local: bool, pub private_key: Option, pub public_key: Option, pub last_refreshed_at: Option, pub banner: Option>, }