use serde::{Deserialize, Serialize};
use serde_json::Number;
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardMemberCollectionSuccess {
pub board_id: String,
pub members: Vec<BoardDetailMember>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardMemberMutationSuccess {
pub board_id: String,
pub user_id: String,
pub action: super::MembershipAction,
pub boards: Vec<BoardSummary>,
pub mutation_confirmed: bool,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum BoardMemberSubmittedField {
Role,
IsAdmin,
IsNoComments,
IsCommentOnly,
IsWorker,
IsNormalAssignedOnly,
IsCommentAssignedOnly,
IsReadOnly,
IsReadAssignedOnly,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardMemberUpdateSuccess {
pub board_id: String,
pub user_id: String,
pub affected_documents: u64,
pub submitted_fields: Vec<BoardMemberSubmittedField>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardSummary {
pub board_id: String,
pub title: String,
}
pub type UserBoardSummary = BoardSummary;
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailMember {
pub user_id: String,
pub is_admin: bool,
pub is_active: bool,
pub is_no_comments: Option<bool>,
pub is_comment_only: Option<bool>,
pub is_worker: Option<bool>,
pub is_normal_assigned_only: Option<bool>,
pub is_comment_assigned_only: Option<bool>,
pub is_read_only: Option<bool>,
pub is_read_assigned_only: Option<bool>,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailWatcher {
pub user_id: String,
pub level: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailLabel {
pub label_id: String,
pub name: Option<String>,
pub color: String,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailOrganization {
pub org_id: String,
pub org_display_name: String,
pub is_active: bool,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailTeam {
pub team_id: String,
pub team_display_name: String,
pub is_active: bool,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetailDomain {
pub domain: String,
pub is_active: bool,
}
#[derive(Clone, Debug, Deserialize, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub struct BoardDetail {
pub board_id: String,
pub title: String,
pub slug: Option<String>,
pub archived: Option<bool>,
pub archived_at: Option<String>,
pub created_at: Option<String>,
pub modified_at: Option<String>,
pub stars: Option<Number>,
#[serde(default)]
pub labels: Vec<BoardDetailLabel>,
#[serde(default)]
pub members: Vec<BoardDetailMember>,
#[serde(default)]
pub watchers: Vec<BoardDetailWatcher>,
pub permission: Option<String>,
#[serde(default)]
pub orgs: Vec<BoardDetailOrganization>,
#[serde(default)]
pub teams: Vec<BoardDetailTeam>,
#[serde(default)]
pub domains: Vec<BoardDetailDomain>,
#[serde(default)]
pub import_usernames: Vec<String>,
pub color: Option<String>,
#[serde(default)]
pub custom_theme_colors: Vec<String>,
pub background_image_url: Option<String>,
pub background_image_id: Option<String>,
pub allows_card_counter_list: Option<bool>,
pub card_aging: Option<bool>,
pub show_dependencies: Option<bool>,
pub card_aging_days1: Option<Number>,
pub card_aging_days2: Option<Number>,
pub card_aging_days3: Option<Number>,
pub allows_board_member_list: Option<bool>,
pub description: Option<String>,
pub subtasks_default_board_id: Option<String>,
pub migration_version: Option<Number>,
pub subtasks_default_list_id: Option<String>,
pub date_settings_default_board_id: Option<String>,
pub date_settings_default_list_id: Option<String>,
pub allows_subtasks: Option<bool>,
pub allows_subtasks_on_minicard: Option<bool>,
pub allows_attachments: Option<bool>,
pub allows_attachments_on_minicard: Option<bool>,
pub allows_checklists: Option<bool>,
pub allows_checklists_on_minicard: Option<bool>,
pub allows_custom_fields: Option<bool>,
pub allows_custom_fields_on_minicard: Option<bool>,
pub allows_checklist_count_badge_on_minicard: Option<bool>,
pub allows_comments: Option<bool>,
pub allows_description_title: Option<bool>,
pub allows_description_title_on_minicard: Option<bool>,
pub allows_description_text: Option<bool>,
pub allows_description_text_on_minicard: Option<bool>,
pub allows_cover_attachment_on_minicard: Option<bool>,
pub allows_cover_attachment_on_card: Option<bool>,
pub allows_badge_attachment_on_minicard: Option<bool>,
pub allows_attachment_count_on_card: Option<bool>,
pub allows_checklist_count_badge_on_card: Option<bool>,
pub allows_card_sorting_by_number_on_minicard: Option<bool>,
pub allows_card_number: Option<bool>,
pub allows_card_number_on_minicard: Option<bool>,
pub allows_activities: Option<bool>,
pub allows_labels: Option<bool>,
pub allows_labels_on_minicard: Option<bool>,
pub allows_creator: Option<bool>,
pub allows_creator_on_minicard: Option<bool>,
pub allows_assignee: Option<bool>,
pub allows_assignee_on_minicard: Option<bool>,
pub allows_members: Option<bool>,
pub allows_members_on_minicard: Option<bool>,
pub allows_requested_by: Option<bool>,
pub allows_requested_by_on_minicard: Option<bool>,
pub allows_card_sorting_by_number: Option<bool>,
pub allows_show_lists: Option<bool>,
pub allows_assigned_by: Option<bool>,
pub allows_assigned_by_on_minicard: Option<bool>,
pub allows_show_lists_on_minicard: Option<bool>,
pub allows_checklist_at_minicard: Option<bool>,
pub allows_received_date: Option<bool>,
pub restrict_comment_editing: Option<bool>,
pub allows_personal_list_width: Option<bool>,
pub auto_width: Option<bool>,
pub allows_received_date_on_minicard: Option<bool>,
pub allows_start_date: Option<bool>,
pub allows_start_date_on_minicard: Option<bool>,
pub allows_end_date: Option<bool>,
pub allows_end_date_on_minicard: Option<bool>,
pub allows_due_date: Option<bool>,
pub allows_due_date_on_minicard: Option<bool>,
pub allows_due_complete: Option<bool>,
pub allows_due_complete_on_minicard: Option<bool>,
pub present_parent_task: Option<String>,
pub received_at: Option<String>,
pub start_at: Option<String>,
pub due_at: Option<String>,
pub end_at: Option<String>,
pub spent_time: Option<Number>,
pub is_overtime: Option<bool>,
pub board_type: Option<String>,
pub sort: Option<Number>,
pub show_activities: Option<bool>,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Serialize)]
#[serde(rename_all = "snake_case")]
pub enum BoardListScope {
Active,
Public,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardListSuccess {
pub scope: BoardListScope,
pub boards: Vec<BoardSummary>,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardCountSuccess {
pub private: u64,
pub public: u64,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardCreateSuccess {
pub board_id: String,
pub default_swimlane_id: String,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardRenameSuccess {
pub board_id: String,
pub title: String,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardDeleteSuccess {
pub board_id: String,
pub deleted: bool,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardLabelCollection {
pub board_id: String,
pub labels: Vec<BoardDetailLabel>,
}
#[derive(Clone, Debug, Eq, PartialEq, Serialize)]
pub struct BoardLabelAdded {
pub board_id: String,
pub label_id: String,
}
#[derive(Debug, Eq, PartialEq, Serialize)]
pub struct BoardCopySuccess {
pub source_board_id: String,
pub board_id: String,
pub mutation_confirmed: bool,
}