use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, 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_permissions: Vec<String>,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct MagicLinkResponse {
pub message: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct VerifyError {
pub code: u16,
pub message: String,
#[serde(default)]
pub sign_in_url: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct VerifyResult {
pub authenticated: bool,
pub user: Option<User>,
pub error: Option<VerifyError>,
}
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct Session {
#[serde(default)]
pub authenticated: bool,
#[serde(default)]
pub user: Option<User>,
#[serde(default)]
pub sign_in_url: String,
}