use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct User {
pub user_id: String,
pub user_email: String,
pub user_first_name: String,
pub user_last_name: String,
#[serde(default)]
pub user_roles: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MagicLinkResponse {
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VerifyResult {
pub authenticated: bool,
pub user: Option<User>,
pub error: Option<VerifyError>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VerifyError {
pub code: u16,
pub message: String,
pub sign_in_url: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub(crate) struct SessionValidationResponse {
pub authenticated: bool,
pub user: Option<User>,
pub sign_in_url: Option<String>,
}
#[derive(Debug, Serialize)]
pub(crate) struct SendMagicLinkRequest {
pub user_email: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub app_id: Option<String>,
}