You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1415 lines
26 KiB

import { List } from 'immutable';
export enum UserOperation {
Logout,
Register,
CreateCommunity,
CreatePost,
ListCategories,
GetCommunity,
CreateComment,
EditComment,
DeleteComment,
RemoveComment,
SaveComment,
MarkCommentAsRead,
CreateCommentLike,
GetPosts,
CreatePostLike,
EditPost,
RemovePost,
DeletePost,
SavePost,
LockPost,
StickyPost,
EditCommunity,
FollowCommunity,
GetFollowedCommunities,
GetReplies,
GetUserMentions,
MarkUserMentionAsRead,
GetModlog,
BanFromCommunity,
AddModToCommunity,
CreateSite,
EditSite,
GetSite,
AddAdmin,
AddSitemod,
BanUser,
Search,
MarkAllAsRead,
SaveUserSettings,
TransferCommunity,
TransferSite,
DeleteAccount,
PasswordReset,
PasswordChange,
CreatePrivateMessage,
EditPrivateMessage,
GetPrivateMessages,
MarkPrivateMessageAsRead,
DeletePrivateMessage,
UserJoin,
GetComments,
GetSiteConfig,
SaveSiteConfig,
VerifyCaptcha,
ListCommentReports,
ListPostReports,
GetReportCount,
ResolveCommentReport,
ResolvePostReport,
CreateCommentReport,
CreatePostReport,
GetCommunitySettings,
EditCommunitySettings,
GetSiteModerators,
GetUserTag,
SetUserTag,
GetCaptcha,
GetCaptchaResponse,
MarkPrivateMessageReadForm,
DeletePrivateMessageForm,
DeleteCommentForm,
RemoveCommentForm,
DeletePostForm,
RemovePostForm,
StickyPostForm,
LockPostForm,
MarkCommentReadForm,
RemoveUserContent,
FeaturePost,
LeaveRooms,
PostJoin,
CommunityJoinRoom,
}
export interface GetCaptcha {}
export interface GetCaptchaResponse {
ok?: {
png: string;
wav?: string;
uuid: string;
};
hcaptcha?: {
site_key: string;
verify_url: string;
};
}
export enum CommentSortType {
Active,
Hot,
Top,
New,
Old,
}
export enum CommentViewType {
Tree,
Chat,
}
export enum ListingType {
All,
Subscribed,
Community,
}
export enum DataType {
Post,
Comment,
}
export enum SortType {
Active,
Hot,
New,
TopDay,
TopWeek,
TopMonth,
TopYear,
TopAll,
}
export enum SearchType {
All,
Comments,
Posts,
Communities,
Users,
Url,
}
export interface Claims {
id: number;
iss: string;
}
export interface User {
id: number;
name: string;
preferred_username?: string;
email?: string;
avatar?: string;
admin: boolean;
banned: boolean;
published: string;
updated?: string;
show_nsfw: boolean;
theme: string;
default_sort_type: SortType;
default_listing_type: ListingType;
lang: string;
show_avatars: boolean;
send_notifications_to_email: boolean;
matrix_user_id: string;
actor_id: string;
bio?: string;
local: boolean;
last_refreshed_at: string;
}
export interface UserView {
id: number;
actor_id: string;
name: string;
avatar?: string;
email?: string;
matrix_user_id?: string;
bio?: string;
local: boolean;
published: string;
number_of_posts: number;
post_score: number;
number_of_comments: number;
comment_score: number;
banned: boolean;
show_avatars: boolean;
send_notifications_to_email: boolean;
has_2fa: boolean;
inbox_disabled: boolean;
}
export interface CommunityUser {
id: number;
user_id: number;
user_actor_id: string;
user_local: boolean;
user_name: string;
avatar?: string;
community_id: number;
community_actor_id: string;
community_local: boolean;
community_name: string;
published: string;
}
export interface Community {
id: number;
actor_id: string;
local: boolean;
name: string;
title: string;
description?: string;
category_id: number;
creator_id: number;
removed: boolean;
deleted: boolean;
nsfw: boolean;
published: string;
updated?: string;
creator_actor_id: string;
creator_local: boolean;
last_refreshed_at: string;
creator_name: string;
creator_avatar?: string;
category_name: string;
number_of_subscribers: number;
number_of_posts: number;
number_of_comments: number;
user_id?: number;
subscribed?: boolean;
}
export interface Post {
id: number;
name: string;
url?: string;
body?: string;
creator_id: number;
community_id: number;
removed: boolean;
deleted: boolean;
locked: boolean;
stickied: boolean;
featured: boolean;
embed_title?: string;
embed_description?: string;
embed_html?: string;
thumbnail_url?: string;
ap_id: string;
local: boolean;
nsfw: boolean;
banned: boolean;
banned_from_community: boolean;
published: string;
updated?: string;
creator_actor_id: string;
creator_local: boolean;
creator_name: string;
creator_published: string;
creator_avatar?: string;
creator_tags?: {
[tag: string]: string;
};
community_actor_id: string;
community_local: boolean;
community_name: string;
community_removed: boolean;
community_deleted: boolean;
community_nsfw: boolean;
number_of_comments: number;
score: number;
upvotes: number;
downvotes: number;
hot_rank: number;
hot_rank_active: number;
newest_activity_time: string;
user_id?: number;
my_vote?: number;
subscribed?: boolean;
read?: boolean;
saved?: boolean;
duplicates?: Array<Post>;
}
export interface Comment {
id: number;
ap_id: string;
local: boolean;
creator_id: number;
post_id: number;
post_name: string;
parent_id?: number;
content: string;
removed: boolean;
deleted: boolean;
read: boolean;
published: string;
updated?: string;
community_id: number;
community_actor_id: string;
community_local: boolean;
community_name: string;
banned: boolean;
banned_from_community: boolean;
creator_actor_id: string;
creator_local: boolean;
creator_name: string;
creator_avatar?: string;
creator_published: string;
creator_tags?: {
[tag: string]: string;
};
score: number;
upvotes: number;
downvotes: number;
hot_rank: number;
hot_rank_active: number;
user_id?: number;
my_vote?: number;
subscribed?: number;
saved?: boolean;
user_mention_id?: number; // For mention type
recipient_id?: number;
recipient_actor_id?: string;
recipient_local?: boolean;
depth?: number;
}
export interface CommentReport {
comment_id: number;
comment_text: string;
comment_time: string;
community_id: number;
creator_id: number;
creator_name: string;
id: string;
post_id: number;
time: string;
reason: string;
resolved: boolean;
user_id: number;
user_name: string;
}
export interface PostReport {
creator_id: number;
creator_name: string;
id: string;
time: string;
reason: string;
resolved: boolean;
user_id: number;
user_name: string;
post_id: number;
post_name: string;
post_time: string;
post_url: string;
post_body: string;
community_id: number;
}
export interface Category {
id: number;
name: string;
}
export interface Site {
id: number;
name: string;
description?: string;
creator_id: number;
published: string;
updated?: string;
creator_name: string;
number_of_users: number;
number_of_posts: number;
number_of_comments: number;
number_of_communities: number;
enable_downvotes: boolean;
enable_create_communities: boolean;
open_registration: boolean;
enable_nsfw: boolean;
autosubscribe_comms: Array<number>;
}
export interface PrivateMessage {
id: number;
creator_id: number;
recipient_id: number;
content: string;
deleted: boolean;
read: boolean;
published: string;
updated?: string;
ap_id: string;
local: boolean;
creator_name: string;
creator_avatar?: string;
creator_actor_id: string;
creator_local: boolean;
recipient_name: string;
recipient_avatar?: string;
recipient_actor_id: string;
recipient_local: boolean;
}
export enum BanType {
Community,
Site,
}
export interface FollowCommunityForm {
community_id: number;
follow: boolean;
auth?: string;
}
export interface GetFollowedCommunitiesForm {
auth: string;
}
export interface GetFollowedCommunitiesResponse {
communities: Array<CommunityUser>;
}
export interface GetUserDetailsForm {
user_id?: number;
username?: string;
sort: string;
page?: number;
limit?: number;
community_id?: number;
saved_only: boolean;
}
export interface UserDetailsResponse {
user: UserView;
follows: Array<CommunityUser>;
moderates: Array<CommunityUser>;
comments: Array<Comment>;
posts: Array<Post>;
admins: Array<UserView>;
sitemods: Array<UserView>;
}
export interface GetRepliesForm {
sort: string;
page?: number;
limit?: number;
unread_only: boolean;
auth?: string;
}
export interface GetRepliesResponse {
replies: Array<Comment>;
}
export interface GetUserMentionsForm {
sort: string;
page?: number;
limit?: number;
unread_only: boolean;
auth?: string;
}
export interface GetUserMentionsResponse {
mentions: Array<Comment>;
}
export interface UserMentionResponse {
mention: Comment;
}
export interface BanFromCommunityForm {
community_id: number;
user_id: number;
ban: boolean;
reason?: string;
expires?: number;
auth?: string;
}
export interface BanFromCommunityResponse {
user: UserView;
banned: boolean;
}
export interface RemoveUserContentForm {
user_id: number;
time?: number;
community_id?: number;
reason?: string;
scrub_name: boolean;
auth?: string;
}
export interface AddModToCommunityForm {
community_id: number;
user_id: number;
added: boolean;
auth?: string;
}
export interface TransferCommunityForm {
community_id: number;
user_id: number;
auth?: string;
}
export interface TransferSiteForm {
user_id: number;
auth?: string;
}
export interface AddModToCommunityResponse {
moderators: Array<CommunityUser>;
}
export interface GetModlogForm {
mod_user_id?: number;
community_id?: number;
page?: number;
limit?: number;
}
export interface GetModlogResponse {
removed_posts: Array<ModRemovePost>;
locked_posts: Array<ModLockPost>;
stickied_posts: Array<ModStickyPost>;
removed_comments: Array<ModRemoveComment>;
removed_communities: Array<ModRemoveCommunity>;
banned_from_community: Array<ModBanFromCommunity>;
banned: Array<ModBan>;
added_to_community: Array<ModAddCommunity>;
added: Array<ModAdd>;
}
export interface ModRemovePost {
id: number;
mod_user_id: number;
other_user_id: number;
post_id: number;
reason?: string;
removed?: boolean;
when_: string;
mod_user_name: string;
other_user_name: string;
post_name: string;
community_id: number;
community_name: string;
}
export interface ModLockPost {
id: number;
mod_user_id: number;
other_user_id: number;
post_id: number;
locked?: boolean;
when_: string;
mod_user_name: string;
other_user_name: string;
post_name: string;
community_id: number;
community_name: string;
}
export interface ModStickyPost {
id: number;
mod_user_id: number;
other_user_id: number;
post_id: number;
stickied?: boolean;
when_: string;
mod_user_name: string;
other_user_name: string;
post_name: string;
community_id: number;
community_name: string;
}
export interface ModRemoveComment {
id: number;
mod_user_id: number;
comment_id: number;
reason?: string;
removed?: boolean;
when_: string;
mod_user_name: string;
comment_user_id: number;
comment_user_name: string;
comment_content: string;
post_id: number;
post_name: string;
community_id: number;
community_name: string;
}
export interface ModRemoveCommunity {
id: number;
mod_user_id: number;
community_id: number;
reason?: string;
removed?: boolean;
expires?: number;
when_: string;
mod_user_name: string;
community_name: string;
}
export interface ModBanFromCommunity {
id: number;
mod_user_id: number;
other_user_id: number;
community_id: number;
reason?: string;
banned?: boolean;
expires?: number;
when_: string;
mod_user_name: string;
other_user_name: string;
community_name: string;
}
export interface ModBan {
id: number;
mod_user_id: number;
other_user_id: number;
reason?: string;
banned?: boolean;
expires?: number;
when_: string;
mod_user_name: string;
other_user_name: string;
}
export interface ModAddCommunity {
id: number;
mod_user_id: number;
other_user_id: number;
community_id: number;
removed?: boolean;
when_: string;
mod_user_name: string;
other_user_name: string;
community_name: string;
}
export interface ModAdd {
id: number;
mod_user_id: number;
other_user_id: number;
removed?: boolean;
when_: string;
mod_user_name: string;
other_user_name: string;
}
export interface LoginForm {
username_or_email: string;
password: string;
code_2fa?: string;
}
export interface LogoutForm {
auth: string;
}
export interface RegisterForm {
username: string;
email?: string;
password: string;
password_verify: string;
admin: boolean;
show_nsfw: boolean;
captcha_uuid?: string;
captcha_answer?: string;
hcaptcha_id?: string;
pronouns?: string;
}
export interface LoginResponse {
requires_2fa: boolean;
jwt: string;
}
export interface UserSettingsForm {
show_nsfw: boolean;
theme: string;
default_sort_type: SortType;
default_listing_type: ListingType;
lang: string;
avatar?: string;
email?: string;
matrix_user_id?: string;
new_password?: string;
new_password_verify?: string;
old_password?: string;
show_avatars: boolean;
send_notifications_to_email: boolean;
has_2fa: boolean;
auth: string;
inbox_disabled: boolean;
}
export interface CommunityForm {
name: string;
title: string;
description?: string;
category_id: number;
edit_id?: number;
removed?: boolean;
deleted?: boolean;
nsfw: boolean;
reason?: string;
expires?: number;
auth?: string;
}
export interface GetCommunityForm {
id?: number;
name?: string;
auth?: string;
}
export interface GetCommunityResponse {
community: Community;
moderators: Array<CommunityUser>;
admins: Array<UserView>;
sitemods: Array<UserView>;
online: number;
}
export interface CommunityResponse {
community: Community;
}
export interface ListCommunitiesForm {
sort: string;
page?: number;
limit?: number;
auth?: string;
}
export interface ListCommunitiesResponse {
communities: Array<Community>;
}
export interface ListCategoriesResponse {
categories: Array<Category>;
}
export interface PostForm {
name: string;
url?: string;
body?: string;
community_id: number;
// updated?: number;
edit_id?: number;
creator_id: number;
// removed?: boolean;
// deleted?: boolean;
nsfw: boolean;
// locked?: boolean;
// stickied?: boolean;
// reason?: string;
auth: string;
}
export interface PostFormParams {
name: string;
url?: string;
body?: string;
community?: string;
}
export interface RemovePostForm {
edit_id: number;
removed: boolean;
reason?: string;
auth?: string;
}
export interface DeletePostForm {
edit_id: number;
deleted: boolean;
auth?: string;
}
export interface LockPostForm {
edit_id: number;
locked: boolean;
auth?: string;
}
export interface StickyPostForm {
edit_id: number;
stickied: boolean;
auth?: string;
}
export interface GetPostResponse {
post: Post;
comments: Array<Comment>;
community: Community;
moderators: Array<CommunityUser>;
admins: Array<UserView>;
sitemods: Array<UserView>;
online: number;
}
export interface SavePostForm {
post_id: number;
save: boolean;
auth?: string;
}
export interface PostResponse {
post: Post;
}
export interface CommentForm {
content: string;
post_id: number;
parent_id?: number;
edit_id?: number;
creator_id?: number;
// removed?: boolean;
// deleted?: boolean;
// reason?: string;
// read?: boolean;
auth: string;
}
export interface EditCommentForm {
content: string;
edit_id?: number;
auth: string;
}
export interface DeleteCommentForm {
edit_id: number;
deleted: boolean;
auth?: string;
}
export interface RemoveCommentForm {
edit_id: number;
removed: boolean;
reason?: string;
auth?: string;
}
export interface SaveCommentForm {
comment_id: number;
save: boolean;
auth?: string;
}
export interface MarkCommentReadForm {
edit_id: number;
read: boolean;
auth?: string;
}
export interface CommentResponse {
comment: Comment;
recipient_ids: Array<number>;
}
export interface CommentLikeForm {
comment_id: number;
post_id: number;
score: number;
auth?: string;
}
export interface CommentNode {
comment: Comment;
children?: List<CommentNode>;
}
export interface GetPostsForm {
type_: string;
sort: string;
page?: number;
limit?: number;
community_id?: number;
community_name?: string;
auth?: string;
}
export interface GetPostsResponse {
posts: Array<Post>;
}
export interface GetCommentsForm {
type_: string;
sort: string;
page?: number;
limit: number;
community_id?: number;
auth?: string;
}
export interface GetCommentResponse {
post: Post;
comments: Array<Comment>;
community?: Community;
moderators?: Array<CommunityUser>;
}
export interface GetCommentsResponse {
comments: Array<Comment>;
}
export interface CreatePostLikeForm {
post_id: number;
score: number;
auth?: string;
}
export interface SiteForm {
name: string;
description?: string;
enable_downvotes: boolean;
enable_create_communities: boolean;
open_registration: boolean;
enable_nsfw: boolean;
autosubscribe_comms: Array<number>;
auth?: string;
}
export interface GetSiteForm {
auth?: string;
}
export interface GetSiteConfig {
auth?: string;
}
export interface GetSiteConfigResponse {
config_hjson: string;
}
export interface SiteConfigForm {
config_hjson: string;
auth?: string;
}
export interface GetSiteResponse {
site: Site;
admins: Array<UserView>;
sitemods: Array<UserView>;
online: number;
version?: string;
my_user?: User;
}
export interface SiteResponse {
site: Site;
}
export interface BanUserForm {
user_id: number;
ban: boolean;
reason?: string;
expires?: number;
auth?: string;
}
export interface BanUserResponse {
user: UserView;
banned: boolean;
}
export interface AddAdminForm {
user_id: number;
added: boolean;
auth?: string;
}
export interface AddAdminResponse {
admins: Array<UserView>;
}
export interface AddSitemodForm {
user_id: number;
added: boolean;
auth?: string;
}
export interface AddSitemodResponse {
sitemods: Array<UserView>;
}
export interface SearchForm {
q: string;
type_: string;
community_id?: number;
sort: string;
page?: number;
limit?: number;
auth?: string;
}
export interface SearchResponse {
type_: string;
posts?: Array<Post>;
comments?: Array<Comment>;
communities: Array<Community>;
users: Array<UserView>;
}
export interface SearchResponseImmut {
type_: string;
posts?: List<Post>;
comments?: List<Comment>;
communities: Array<Community>;
users: Array<UserView>;
}
export interface DeleteAccountForm {
password: string;
}
export interface PasswordResetForm {
email: string;
}
// export interface PasswordResetResponse {
// }
export interface PasswordChangeForm {
token: string;
password: string;
password_verify: string;
}
export interface PrivateMessageForm {
content: string;
recipient_id: number;
auth?: string;
}
export interface PrivateMessageFormParams {
recipient_id: number;
}
export interface EditPrivateMessageForm {
edit_id: number;
content?: string;
deleted?: boolean;
read?: boolean;
auth?: string;
}
export interface MarkPrivateMessageReadForm {
edit_id: number;
read: boolean;
auth?: string;
}
export interface DeletePrivateMessageForm {
edit_id: number;
deleted: boolean;
auth?: string;
}
export interface GetPrivateMessagesForm {
unread_only: boolean;
page?: number;
limit?: number;
auth?: string;
}
export interface PrivateMessagesResponse {
messages: Array<PrivateMessage>;
}
export interface PrivateMessageResponse {
message: PrivateMessage;
}
export interface UserJoinForm {
auth: string;
}
export interface UserJoinResponse {
user_id: number;
}
export interface PostJoinForm {
auth: string;
}
export interface PostJoinResponse {
post_id: number;
}
export interface VerifyCaptchaForm {
captcha_token: number;
}
export interface VerifyCaptchaResponse {
success: boolean;
}
export interface ListCommentReportsForm {
page?: number;
limit?: number;
community: number;
}
export interface ListPostReportsForm {
page?: number;
limit?: number;
community: number;
}
export interface CreateCommentReportForm {
comment: number;
reason?: string;
}
export interface CreatePostReportForm {
post: number;
reason?: string;
}
export interface ResolveCommentReportForm {
report: string;
}
export interface ResolvePostReportForm {
report: string;
}
export interface ListCommentReportsResponse {
reports: CommentReport[];
}
export interface ListPostReportsResponse {
reports: PostReport[];
}
export interface CreateCommentReportResponse {
success: boolean;
}
export interface CreatePostReportResponse {
success: boolean;
}
export interface ResolveCommentReportResponse {
report: string;
resolved: boolean;
}
export interface ResolvePostReportResponse {
report: string;
resolved: boolean;
}
export interface GetReportCountForm {
community: number; // community_id
}
export interface GetReportCountResponse {
community: number; // community_id
comment_reports: number;
post_reports: number;
}
export type MessageType =
| EditPrivateMessageForm
| LoginForm
| RegisterForm
| CommunityForm
| FollowCommunityForm
| ListCommunitiesForm
| GetFollowedCommunitiesForm
| PostForm
| GetPostsForm
| GetCommunityForm
| CommentForm
| CommentLikeForm
| SaveCommentForm
| CreatePostLikeForm
| BanFromCommunityForm
| AddAdminForm
| AddSitemodForm
| AddModToCommunityForm
| TransferCommunityForm
| TransferSiteForm
| SaveCommentForm
| BanUserForm
| GetUserDetailsForm
| GetRepliesForm
| GetUserMentionsForm
| GetModlogForm
| SiteForm
| SearchForm
| UserSettingsForm
| DeleteAccountForm
| PasswordResetForm
| PasswordChangeForm
| PrivateMessageForm
| EditPrivateMessageForm
| GetPrivateMessagesForm
| SiteConfigForm
| VerifyCaptchaForm
| ListCommentReportsForm
| ListPostReportsForm
| GetReportCountForm
| ResolveCommentReportForm
| ResolvePostReportForm
| CreateCommentReportForm
| CreatePostReportForm
| GetUserTagForm
| SetUserTagForm
| GetCaptcha;
type ResponseType =
| SiteResponse
| GetFollowedCommunitiesResponse
| ListCommunitiesResponse
| GetPostsResponse
| PostResponse
| GetRepliesResponse
| GetUserMentionsResponse
| ListCategoriesResponse
| CommunityResponse
| CommentResponse
| UserMentionResponse
| LoginResponse
| GetModlogResponse
| SearchResponse
| BanFromCommunityResponse
| AddModToCommunityResponse
| BanUserResponse
| AddAdminResponse
| AddSitemodResponse
| PrivateMessageResponse
| PrivateMessagesResponse
| GetSiteConfigResponse
| GetSiteResponse
| VerifyCaptchaResponse
| ListCommentReportsResponse
| ListPostReportsResponse
| GetReportCountResponse
| ResolveCommentReportResponse
| ResolvePostReportResponse
| CreateCommentReportResponse
| CreatePostReportResponse
| CommunitySettingsResponse
| GetSiteModeratorsResponse
| UserTagResponse
| GetCaptchaResponse;
export interface WebSocketResponse {
op: UserOperation;
data: ResponseType;
}
export interface WebSocketJsonResponse {
op?: string;
data?: ResponseType;
error?: string;
reconnect?: boolean;
}
export interface EditCommunitySettingsForm {
community_id: number;
read_only: boolean;
private: boolean;
post_links: boolean;
comment_images: number;
allow_as_default: boolean;
}
export interface GetCommunitySettingsForm {
community_id: number;
}
export interface CommunitySettingsResponse {
read_only: boolean;
private: boolean;
post_links: boolean;
comment_images: number;
published: string;
allow_as_default: boolean;
hide_from_all: boolean;
}
export interface CommunityMods {
community: Community;
moderators: number[];
}
export interface CommunityModsState {
[communityId: number]: CommunityMods;
}
export interface GetSiteModeratorsResponse {
communities: CommunityMods[];
}
export interface GetUserTagForm {
user: number;
community?: number;
}
export interface SetUserTagForm {
tag: string;
value?: string | null; //null removes tag
community?: number;
}
export interface UserTagResponse {
user: number;
tags: {
[tag: string]: string;
};
}
export enum UserDetailsView {
Overview,
Comments,
Posts,
Saved,
}
export enum ModLogFilter {
removed_posts = 'removed_posts',
locked_posts = 'locked_posts',
stickied_posts = 'stickied_posts',
removed_comments = 'removed_comments',
removed_communities = 'removed_communities',
banned_from_community = 'banned_from_community',
added_to_community = 'added_to_community',
added = 'added',
banned = 'banned',
}
export interface DeleteCommunityForm {
edit_id: number;
deleted: boolean;
auth?: string;
}
export interface RemoveCommunityForm {
edit_id: number;
removed: boolean;
reason?: string;
expires?: number;
auth?: string;
}
export interface MarkCommentAsReadForm {
edit_id: number;
read: boolean;
auth: string;
}
export interface MarkUserMentionAsReadForm {
user_mention_id: number;
read: boolean;
auth?: string;
}
export interface MarkPrivateMessageAsReadForm {
edit_id: number;
read: boolean;
auth?: string;
}
export interface MarkAllAsReadForm {
auth: string;
}
export interface PasswordResetResponse {}
export interface PostJoinForm {
post_id: number;
}
export interface FeaturePostForm {
id: number;
featured: boolean;
auth?: string;
}
export interface PostJoinResponse {
joined: boolean;
}
export interface CommunityJoinRoomForm {
community_id: number;
}
export interface CommunityJoinResponse {
joined: boolean;
}
export interface GetRelatedUsersForm {
id: number;
auth: string;
}
export interface GetRelatedUsersResponse {
users: Array<UserView>;
}