use utoipa::OpenApi; use crate::features::bans::types::{ CreateBanCmd, SpaceBanPage, SpaceBanView, UpdateBanCmd, }; use crate::features::channel_members::types::{ AddChannelMemberCmd, ChannelMemberPage, ChannelMemberRole, ChannelMemberView, UpdateChannelMemberCmd, }; use crate::features::channels::types::{ChannelPage, ChannelView}; use crate::features::invites::types::{ AcceptInviteCmd, CreateInviteCmd, SpaceInvitePage, SpaceInviteView, }; use crate::features::members::types::{ AddMemberCmd, MessageNotifications, SpaceMemberPage, SpaceMemberStatus, SpaceMemberView, UpdateMemberCmd, }; use crate::features::overwrites::types::{ RoleOverwriteView, SetRoleOverwriteCmd, SetUserOverwriteCmd, UserOverwriteView, }; use crate::features::roles::types::{ AssignRoleCmd, CreateRoleCmd, RolePage, RoleView, UnassignRoleCmd, UpdateRoleCmd, }; use crate::features::spaces::types::{ CreateSpaceCmd, SpaceAllowJoinLevel, SpacePage, SpaceView, UpdateSpaceCmd, }; #[derive(OpenApi)] #[openapi( info( title = "Space API", version = "1.0.0", description = "Space and channel management endpoints." ), tags( (name = "space", description = "Space, membership, roles, invites, bans, channels, channel members and overwrite endpoints.") ), paths( // === spaces === crate::handler::spaces::create::handler, crate::handler::spaces::get::handler, crate::handler::spaces::list::handler, crate::handler::spaces::update::handler, crate::handler::spaces::delete::handler, // === members === crate::handler::members::add::handler, crate::handler::members::get::handler, crate::handler::members::list::handler, crate::handler::members::remove::handler, crate::handler::members::update::handler, // === roles === crate::handler::roles::create::handler, crate::handler::roles::get::handler, crate::handler::roles::list::handler, crate::handler::roles::update::handler, crate::handler::roles::delete::handler, crate::handler::roles::assign::handler, crate::handler::roles::unassign::handler, // === invites === crate::handler::invites::create::handler, crate::handler::invites::list::handler, crate::handler::invites::revoke::handler, crate::handler::invites::accept::handler, // === bans === crate::handler::bans::ban::handler, crate::handler::bans::get::handler, crate::handler::bans::list::handler, crate::handler::bans::update::handler, crate::handler::bans::unban::handler, // === channels === crate::handler::channels::get::handler, crate::handler::channels::list::handler, // === channel members === crate::handler::channel_members::add::handler, crate::handler::channel_members::get::handler, crate::handler::channel_members::list::handler, crate::handler::channel_members::update::handler, crate::handler::channel_members::remove::handler, // === overwrites === crate::handler::overwrites::set_role::handler, crate::handler::overwrites::remove_role::handler, crate::handler::overwrites::list_role::handler, crate::handler::overwrites::set_user::handler, crate::handler::overwrites::remove_user::handler, crate::handler::overwrites::list_user::handler, ), components(schemas( SpaceView, CreateSpaceCmd, UpdateSpaceCmd, SpacePage, SpaceAllowJoinLevel, SpaceMemberView, AddMemberCmd, UpdateMemberCmd, SpaceMemberPage, SpaceMemberStatus, MessageNotifications, RoleView, CreateRoleCmd, UpdateRoleCmd, RolePage, AssignRoleCmd, UnassignRoleCmd, SpaceInviteView, CreateInviteCmd, AcceptInviteCmd, SpaceInvitePage, SpaceBanView, CreateBanCmd, UpdateBanCmd, SpaceBanPage, ChannelView, ChannelPage, ChannelMemberView, AddChannelMemberCmd, UpdateChannelMemberCmd, ChannelMemberPage, ChannelMemberRole, RoleOverwriteView, SetRoleOverwriteCmd, UserOverwriteView, SetUserOverwriteCmd, )) )] pub struct SpaceApiDoc;