flow_bot/event/
request.rs

1use serde::{Deserialize, Serialize};
2
3use crate::impl_from_event;
4
5#[derive(Deserialize, Debug, Clone)]
6pub struct FriendRequest {
7    pub user_id: i64,
8    pub comment: String,
9    pub flag: String,
10}
11
12#[derive(Serialize, Deserialize, Debug, Clone)]
13#[serde(rename_all = "snake_case")]
14pub enum GroupRequestSubType {
15    Add,
16    Invite,
17}
18
19#[derive(Deserialize, Debug, Clone)]
20pub struct GroupRequest {
21    pub user_id: i64,
22    pub sub_type: GroupRequestSubType,
23    pub group_id: i64,
24    pub comment: String,
25    pub flag: String,
26}
27
28#[derive(Deserialize, Debug, Clone)]
29#[serde(tag = "request_type")]
30#[serde(rename_all = "snake_case")]
31pub enum Request {
32    Friend(FriendRequest),
33    Group(GroupRequest),
34}
35
36impl_from_event!(Request);
37
38impl_from_event!(Request, Friend, FriendRequest);
39
40impl_from_event!(Request, Group, GroupRequest);