1use crate::{Account, Region, User};
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Clone)]
5#[serde(tag = "type")]
6pub enum RedisEvent {
7 AccountSync,
8 AccountCreate(AccountUpdate),
9 AccountUpdate(AccountUpdate),
10 AccountDelete(CacheDelete),
11 RegionSync,
12 RegionCreate(RegionUpdate),
13 RegionUpdate(RegionUpdate),
14 RegionDelete(CacheDelete),
15 UserSync,
16 UserCreate(UserCreate),
17 UserUpdate(UserUpdate),
18 UserDelete(UserDelete),
19}
20
21#[derive(Serialize, Deserialize, Clone)]
22pub struct AccountUpdate {
23 pub payload: Account
24}
25
26#[derive(Serialize, Deserialize, Clone)]
27pub struct RegionUpdate {
28 pub payload: Region
29}
30
31#[derive(Serialize, Deserialize, Clone)]
32pub struct CacheDelete {
33 pub id: String
34}
35
36#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct UserUpdate {
38 pub payload: User,
39}
40
41#[derive(Debug, Clone, Serialize, Deserialize)]
42pub struct UserCreate {
43 pub payload: User,
44}
45
46#[derive(Debug, Clone, Serialize, Deserialize)]
47pub struct UserDelete {
48 pub id: String,
49}
50