use lemmy_db_schema::{CommunityId, PersonId}; use lemmy_db_views::{ comment_view::CommentView, local_user_view::LocalUserSettingsView, post_view::PostView, site_view::SiteView, }; use lemmy_db_views_actor::{community_view::CommunityView, person_view::PersonViewSafe}; use lemmy_db_views_moderator::{ mod_add_community_view::ModAddCommunityView, mod_add_view::ModAddView, mod_ban_from_community_view::ModBanFromCommunityView, mod_ban_view::ModBanView, mod_lock_post_view::ModLockPostView, mod_remove_comment_view::ModRemoveCommentView, mod_remove_community_view::ModRemoveCommunityView, mod_remove_post_view::ModRemovePostView, mod_sticky_post_view::ModStickyPostView, }; use serde::{Deserialize, Serialize}; #[derive(Deserialize, Debug)] pub struct Search { pub q: String, pub community_id: Option, pub community_name: Option, pub creator_id: Option, pub type_: Option, pub sort: Option, pub listing_type: Option, pub page: Option, pub limit: Option, pub auth: Option, } #[derive(Serialize, Debug)] pub struct SearchResponse { pub type_: String, pub comments: Vec, pub posts: Vec, pub communities: Vec, pub users: Vec, } #[derive(Deserialize)] pub struct GetModlog { pub mod_person_id: Option, pub community_id: Option, pub page: Option, pub limit: Option, } #[derive(Serialize)] pub struct GetModlogResponse { pub removed_posts: Vec, pub locked_posts: Vec, pub stickied_posts: Vec, pub removed_comments: Vec, pub removed_communities: Vec, pub banned_from_community: Vec, pub banned: Vec, pub added_to_community: Vec, pub added: Vec, } #[derive(Deserialize)] pub struct CreateSite { pub name: String, pub sidebar: Option, pub description: Option, pub icon: Option, pub banner: Option, pub enable_downvotes: Option, pub open_registration: Option, pub enable_nsfw: Option, pub community_creation_admin_only: Option, pub auth: String, } #[derive(Deserialize)] pub struct EditSite { pub name: Option, pub sidebar: Option, pub description: Option, pub icon: Option, pub banner: Option, pub enable_downvotes: Option, pub open_registration: Option, pub enable_nsfw: Option, pub community_creation_admin_only: Option, pub auth: String, } #[derive(Deserialize)] pub struct GetSite { pub auth: Option, } #[derive(Serialize, Clone)] pub struct SiteResponse { pub site_view: SiteView, } #[derive(Serialize)] pub struct GetSiteResponse { pub site_view: Option, // Because the site might not be set up yet pub admins: Vec, pub banned: Vec, pub online: usize, pub version: String, pub my_user: Option, pub federated_instances: Option, // Federation may be disabled } #[derive(Deserialize)] pub struct TransferSite { pub person_id: PersonId, pub auth: String, } #[derive(Deserialize)] pub struct GetSiteConfig { pub auth: String, } #[derive(Serialize)] pub struct GetSiteConfigResponse { pub config_hjson: String, } #[derive(Deserialize)] pub struct SaveSiteConfig { pub config_hjson: String, pub auth: String, } #[derive(Serialize)] pub struct FederatedInstances { pub linked: Vec, pub allowed: Option>, pub blocked: Option>, }