use lemmy_db_schema::{CommunityId, PostId}; use lemmy_db_views::{ comment_view::CommentView, post_report_view::PostReportView, post_view::PostView, }; use lemmy_db_views_actor::{ community_moderator_view::CommunityModeratorView, community_view::CommunityView, }; use lemmy_utils::request::SiteMetadata; use serde::{Deserialize, Serialize}; use url::Url; #[derive(Deserialize, Debug)] pub struct CreatePost { pub name: String, pub community_id: CommunityId, pub url: Option, pub body: Option, pub nsfw: Option, pub auth: String, } #[derive(Serialize, Clone)] pub struct PostResponse { pub post_view: PostView, } #[derive(Deserialize)] pub struct GetPost { pub id: PostId, pub auth: Option, } #[derive(Serialize)] pub struct GetPostResponse { pub post_view: PostView, pub community_view: CommunityView, pub comments: Vec, pub moderators: Vec, pub online: usize, } #[derive(Deserialize, Debug)] pub struct GetPosts { pub type_: Option, pub sort: Option, pub page: Option, pub limit: Option, pub community_id: Option, pub community_name: Option, pub saved_only: Option, pub auth: Option, } #[derive(Serialize, Debug)] pub struct GetPostsResponse { pub posts: Vec, } #[derive(Deserialize)] pub struct CreatePostLike { pub post_id: PostId, pub score: i16, pub auth: String, } #[derive(Deserialize)] pub struct EditPost { pub post_id: PostId, pub name: Option, pub url: Option, pub body: Option, pub nsfw: Option, pub auth: String, } #[derive(Deserialize)] pub struct DeletePost { pub post_id: PostId, pub deleted: bool, pub auth: String, } #[derive(Deserialize)] pub struct RemovePost { pub post_id: PostId, pub removed: bool, pub reason: Option, pub auth: String, } #[derive(Deserialize)] pub struct LockPost { pub post_id: PostId, pub locked: bool, pub auth: String, } #[derive(Deserialize)] pub struct StickyPost { pub post_id: PostId, pub stickied: bool, pub auth: String, } #[derive(Deserialize)] pub struct SavePost { pub post_id: PostId, pub save: bool, pub auth: String, } #[derive(Serialize, Deserialize)] pub struct CreatePostReport { pub post_id: PostId, pub reason: String, pub auth: String, } #[derive(Serialize, Deserialize, Clone)] pub struct CreatePostReportResponse { pub success: bool, } #[derive(Serialize, Deserialize, Debug)] pub struct ResolvePostReport { pub report_id: i32, pub resolved: bool, pub auth: String, } #[derive(Serialize, Deserialize, Clone, Debug)] pub struct ResolvePostReportResponse { pub report_id: i32, pub resolved: bool, } #[derive(Serialize, Deserialize, Debug)] pub struct ListPostReports { pub page: Option, pub limit: Option, pub community: Option, pub auth: String, } #[derive(Serialize, Clone, Debug)] pub struct ListPostReportsResponse { pub posts: Vec, } #[derive(Deserialize, Debug)] pub struct GetSiteMetadata { pub url: Url, } #[derive(Serialize, Clone, Debug)] pub struct GetSiteMetadataResponse { pub metadata: SiteMetadata, }