use crate::{Account, Region, User};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Clone)]
#[serde(tag = "type")]
pub enum RedisEvent {
AccountSync,
AccountCreate(AccountUpdate),
AccountUpdate(AccountUpdate),
AccountDelete(CacheDelete),
RegionSync,
RegionCreate(RegionUpdate),
RegionUpdate(RegionUpdate),
RegionDelete(CacheDelete),
UserSync,
UserCreate(UserCreate),
UserUpdate(UserUpdate),
UserDelete(UserDelete),
}
#[derive(Serialize, Deserialize, Clone)]
pub struct AccountUpdate {
pub payload: Account
}
#[derive(Serialize, Deserialize, Clone)]
pub struct RegionUpdate {
pub payload: Region
}
#[derive(Serialize, Deserialize, Clone)]
pub struct CacheDelete {
pub id: String
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserUpdate {
pub payload: User,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserCreate {
pub payload: User,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserDelete {
pub id: String,
}