auth.user.login:1
auth.user.logout:1
auth.session.expired:1
use serde::{Serialize, Deserialize};
/// Event types for domain: auth
pub mod auth {
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserLoginV1 {
pub user_id: uuid::Uuid,
pub ip: std::net::IpAddr,
pub method: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct UserLogoutV1 {
pub user_id: uuid::Uuid,
#[serde(skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct SessionExpiredV1 {
pub session_id: uuid::Uuid,
pub user_id: uuid::Uuid,
}
}
// Usage with emit! macro:
// emit!(auth.user.login:1, user_id: user.id, ip: req.ip, method: "oauth");