slack_morphism/models/common/
star.rs1use crate::*;
2
3use rsb_derive::Builder;
4use rvstruct::ValueStruct;
5use serde::{Deserialize, Serialize};
6use serde_with::skip_serializing_none;
7
8#[derive(Debug, PartialEq, Clone, Serialize, Deserialize)]
9#[serde(tag = "type")]
10#[serde(rename_all = "lowercase")]
11#[allow(clippy::large_enum_variant)]
12pub enum SlackStarsItem {
13 Message(SlackStarsItemMessage),
14 File(SlackStarsItemFile),
15 #[serde(rename = "file_comment")]
16 FileComment(SlackStarsItemFileComment),
17 Channel(SlackStarsItemChannel),
18 Im(SlackStarsItemIm),
19 Group(SlackStarsItemGroup),
20}
21
22#[skip_serializing_none]
23#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
24pub struct SlackStarsItemMessage {
25 pub message: SlackHistoryMessage,
26 pub channel: SlackChannelId,
27 pub date_create: SlackDateTime,
28}
29
30#[skip_serializing_none]
31#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
32pub struct SlackStarsItemFile {
33 pub file: SlackFile,
34 pub channel: SlackChannelId,
35 pub date_create: SlackDateTime,
36}
37
38#[skip_serializing_none]
39#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
40pub struct SlackStarsItemFileComment {
41 pub file: SlackFile,
42 pub comment: SlackFileCommentId,
43 pub channel: SlackChannelId,
44 pub date_create: SlackDateTime,
45}
46
47#[skip_serializing_none]
48#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
49pub struct SlackStarsItemChannel {
50 pub channel: SlackChannelId,
51 pub date_create: SlackDateTime,
52}
53
54#[skip_serializing_none]
55#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
56pub struct SlackStarsItemIm {
57 pub channel: SlackChannelId,
58 pub date_create: SlackDateTime,
59}
60
61#[skip_serializing_none]
62#[derive(Debug, PartialEq, Clone, Serialize, Deserialize, Builder)]
63pub struct SlackStarsItemGroup {
64 pub group: SlackChannelId,
65 pub date_create: SlackDateTime,
66}