slack_morphism/models/common/
team.rs

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