flow_bot/event/
request.rs1use 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);