slack_morphism/models/common/
star.rs

1use 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}