use lemmy_db::{ comment_view::CommentView, community_view::{CommunityModeratorView, CommunityView}, post_view::PostView, }; use serde::{Deserialize, Serialize}; #[derive(Deserialize, Debug)] pub struct CreatePost { pub name: String, pub url: Option, pub body: Option, pub nsfw: bool, pub community_id: i32, pub auth: String, } #[derive(Serialize, Clone)] pub struct PostResponse { pub post: PostView, } #[derive(Deserialize)] pub struct GetPost { pub id: i32, pub auth: Option, } #[derive(Serialize)] pub struct GetPostResponse { pub post: PostView, pub comments: Vec, pub community: CommunityView, pub moderators: Vec, pub online: usize, } #[derive(Deserialize, Debug)] pub struct GetPosts { pub type_: String, pub sort: String, pub page: Option, pub limit: Option, pub community_id: Option, pub community_name: Option, pub auth: Option, } #[derive(Serialize, Debug)] pub struct GetPostsResponse { pub posts: Vec, } #[derive(Deserialize)] pub struct CreatePostLike { pub post_id: i32, pub score: i16, pub auth: String, } #[derive(Deserialize)] pub struct EditPost { pub edit_id: i32, pub name: String, pub url: Option, pub body: Option, pub nsfw: bool, pub auth: String, } #[derive(Deserialize)] pub struct DeletePost { pub edit_id: i32, pub deleted: bool, pub auth: String, } #[derive(Deserialize)] pub struct RemovePost { pub edit_id: i32, pub removed: bool, pub reason: Option, pub auth: String, } #[derive(Deserialize)] pub struct LockPost { pub edit_id: i32, pub locked: bool, pub auth: String, } #[derive(Deserialize)] pub struct StickyPost { pub edit_id: i32, pub stickied: bool, pub auth: String, } #[derive(Deserialize)] pub struct SavePost { pub post_id: i32, pub save: bool, pub auth: String, } #[derive(Deserialize, Debug)] pub struct PostJoin { pub post_id: i32, } #[derive(Serialize, Clone)] pub struct PostJoinResponse { pub joined: bool, }