slack_morphism_models/common/
team.rs

1use crate::common::*;
2
3use rsb_derive::Builder;
4use serde::{Deserialize, Serialize};
5use serde_with::skip_serializing_none;
6
7#[skip_serializing_none]
8#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
9pub struct SlackTeamInfo {
10    pub id: SlackTeamId,
11    pub name: Option<String>,
12    pub domain: Option<String>,
13    pub email_domain: Option<String>,
14    pub icon: Option<SlackIcon>,
15}
16
17#[skip_serializing_none]
18#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
19pub struct SlackBasicTeamInfo {
20    pub id: SlackTeamId,
21    pub name: Option<String>,
22}
23
24#[skip_serializing_none]
25#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
26pub struct SlackTeamProfile {
27    pub fields: Vec<SlackTeamProfileField>,
28}
29
30#[derive(Debug, Eq, PartialEq, Hash, Clone, Serialize, Deserialize, ValueStruct)]
31pub struct SlackTeamProfileFieldId(pub String);
32
33#[skip_serializing_none]
34#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
35pub struct SlackTeamProfileField {
36    id: SlackTeamProfileFieldId,
37    ordering: i64,
38    label: String,
39    hint: Option<String>,
40    #[serde(rename = "type")]
41    field_type: Option<String>,
42    possible_values: Option<Vec<String>>,
43    options: Option<serde_json::Value>,
44}