cal_core/
sync.rs

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