use crate::client::metadata::*;
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>,
}
#[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 granted_by: Option<Vec<String>>,
pub custom_role_id: Option<String>,
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 due_at: Option<String>,
pub shared_label_id: Option<String>,
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 scrum: Option<Box<ScrumSettings>>,
pub scrum_import_losses: Option<Vec<ScrumImportLoss>>,
pub announcement: Option<BoardAnnouncement>,
pub wip_limit_groups: Option<Vec<BoardWipGroup>>,
pub email_to_card: Option<Box<BoardEmailToCard>>,
pub notification_delivery: Option<Box<NotificationDelivery>>,
pub column_sets: Option<Vec<BoardColumnSet>>,
pub scrum_revision: Option<serde_json::Number>,
pub allows_instance_editing: Option<bool>,
pub import_run_id: Option<String>,
pub sync_effects_enabled: Option<bool>,
pub map_image_attachment_id: Option<String>,
pub auto_archive_inactive_days: Option<Number>,
pub rules_visible_to_members: Option<bool>,
pub card_field_order: Option<Vec<String>>,
pub minicard_field_order: Option<Vec<String>>,
pub notify_override_tray: Option<bool>,
pub notify_override_email: Option<bool>,
pub due_reminder_days: Option<Vec<Number>>,
pub due_reminder_webhook: Option<bool>,
pub labels_above_title_on_card: Option<bool>,
pub allows_checklist_due_date_on_minicard: Option<bool>,
pub allows_location_on_minicard: Option<bool>,
pub allows_swimlane_name_on_card: Option<bool>,
pub allows_flowtime_on_minicard: Option<bool>,
pub allows_pomodoro_on_minicard: Option<bool>,
pub allows_attachment_list_on_minicard: Option<bool>,
pub allows_text_notes_on_minicard: Option<bool>,
pub allows_comment_count_on_card: Option<bool>,
pub allows_activities_on_minicard: Option<bool>,
pub allows_card_buttons_on_minicard: Option<bool>,
pub allows_description_badge_on_card: Option<bool>,
pub allows_unread_comments_on_card: Option<bool>,
pub allows_due_from_title_on_card: Option<bool>,
pub allows_due_from_title_on_minicard: Option<bool>,
pub allows_similar_cards_on_card: Option<bool>,
pub allows_similar_cards_on_minicard: Option<bool>,
pub allows_at_risk_on_card: Option<bool>,
pub allows_at_risk_on_minicard: Option<bool>,
pub allows_suggested_members_on_card: Option<bool>,
pub allows_forecast_on_card: Option<bool>,
pub allows_forecast_on_minicard: Option<bool>,
pub allows_checklist_from_description_on_card: Option<bool>,
pub allows_action_items_on_card: Option<bool>,
pub allows_whiteboard_on_card: Option<bool>,
pub shared_list_headers: Option<bool>,
pub board_view_settings: Option<
std::collections::BTreeMap<
String,
crate::client::boards::presentation::StoredBoardViewVisibility,
>,
>,
pub board_view_order: Option<Vec<String>>,
pub date_format_override: Option<bool>,
pub date_format: Option<String>,
pub ask_for_move_reason: Option<bool>,
pub subtasks_default_swimlane_id: Option<String>,
pub allows_swimlane_dragging: Option<bool>,
pub allows_list_dragging: Option<bool>,
pub allows_card_dragging: Option<bool>,
pub allows_checklist_dragging: Option<bool>,
pub allows_checklist_item_dragging: Option<bool>,
pub allows_subtask_dragging: Option<bool>,
pub allows_minicard_collapse: Option<bool>,
pub labels_above_title_on_minicard: Option<bool>,
pub allows_checklist_due_date: Option<bool>,
pub allows_checklist_title: Option<bool>,
pub allows_comments_on_minicard: Option<bool>,
pub show_label_text: Option<bool>,
pub allows_swimlane_name_on_minicard: Option<bool>,
pub allows_spent_time: Option<bool>,
pub allows_spent_time_on_minicard: Option<bool>,
pub allows_stickers: Option<bool>,
pub allows_stickers_on_minicard: Option<bool>,
pub allows_location: Option<bool>,
pub allows_dependencies: Option<bool>,
pub allows_dependencies_on_minicard: Option<bool>,
pub allows_flowtime: Option<bool>,
pub allows_pomodoro: Option<bool>,
pub allows_vote: Option<bool>,
pub allows_vote_on_minicard: Option<bool>,
pub allows_poker: Option<bool>,
pub allows_poker_on_minicard: Option<bool>,
pub allows_text_notes: Option<bool>,
pub allows_comment_count_on_minicard: Option<bool>,
pub allows_card_collapse: Option<bool>,
pub allows_checklist_title_on_minicard: Option<bool>,
pub allows_label_text_on_card: Option<bool>,
pub allows_card_color_on_card: Option<bool>,
pub allows_card_color_on_minicard: Option<bool>,
pub allows_parent_card_on_card: Option<bool>,
pub allows_parent_card_on_minicard: Option<bool>,
pub allows_linked_card_on_card: Option<bool>,
pub allows_linked_card_on_minicard: Option<bool>,
pub allows_card_buttons_on_card: Option<bool>,
pub allows_description_badge_on_minicard: Option<bool>,
pub allows_unread_comments_on_minicard: Option<bool>,
pub allows_issue_type_on_minicard: Option<bool>,
pub sticky_list_headers: Option<bool>,
pub list_width_resize_locked: Option<bool>,
pub swimlane_height_resize_locked: Option<bool>,
pub default_public_board_view: Option<String>,
pub default_private_board_view: Option<String>,
pub same_width_for_all_lists: Option<bool>,
pub same_width_for_all_lists_value: Option<Number>,
pub key: Option<String>,
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 instance: u64,
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,
}