use utoipa::OpenApi; use export::project::activities::{ActivityPage, ActivityView, ListActivityQuery}; use export::project::documents::{CreateDocumentCmd, DocumentPage, DocumentView, UpdateDocumentCmd}; use export::project::favorites::{AddFavoriteCmd, FavoritePage, FavoriteView}; use export::project::lifecycle::{ CreateProjectCmd, ListProjectQuery, ProjectHealth, ProjectPage, ProjectState, ProjectView, UpdateProjectCmd, }; use export::project::views::{CreateViewCmd, UpdateViewCmd, ViewPage, ViewView}; use crate::features::links::{AddLinkCmd, LinkKind, LinkPage, LinkView}; use crate::features::members::{AddMemberCmd, MemberPage, MemberRole, MemberView, UpdateMemberCmd}; #[derive(OpenApi)] #[openapi( info( title = "Project API", version = "1.0.0", description = "Linear-style project management endpoints under a space." ), tags( (name = "project", description = "Project lifecycle, members, views, documents, links, favorites, activities.") ), paths( crate::handler::lifecycle::create::handler, crate::handler::lifecycle::list::handler, crate::handler::lifecycle::get::handler, crate::handler::lifecycle::update::handler, crate::handler::lifecycle::delete::handler, crate::handler::members::add::handler, crate::handler::members::list::handler, crate::handler::members::get::handler, crate::handler::members::update::handler, crate::handler::members::remove::handler, crate::handler::views::create::handler, crate::handler::views::list::handler, crate::handler::views::get::handler, crate::handler::views::update::handler, crate::handler::views::delete::handler, crate::handler::documents::create::handler, crate::handler::documents::list::handler, crate::handler::documents::get::handler, crate::handler::documents::update::handler, crate::handler::documents::delete::handler, crate::handler::links::add::handler, crate::handler::links::list::handler, crate::handler::links::remove::handler, crate::handler::favorites::add::handler, crate::handler::favorites::list::handler, crate::handler::favorites::remove::handler, crate::handler::activities::list::handler, ), components(schemas( ProjectState, ProjectHealth, CreateProjectCmd, UpdateProjectCmd, ProjectView, ProjectPage, ListProjectQuery, MemberRole, AddMemberCmd, UpdateMemberCmd, MemberView, MemberPage, CreateViewCmd, UpdateViewCmd, ViewView, ViewPage, CreateDocumentCmd, UpdateDocumentCmd, DocumentView, DocumentPage, LinkKind, AddLinkCmd, LinkView, LinkPage, AddFavoriteCmd, FavoriteView, FavoritePage, ActivityView, ListActivityQuery, ActivityPage, )) )] pub struct ProjectApiDoc;