use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct NucleusClaims {
pub sub: String,
pub iss: String,
pub aud: String,
pub exp: u64,
pub iat: u64,
#[serde(default)]
pub jti: Option<String>,
#[serde(default)]
pub email: Option<String>,
#[serde(default)]
pub first_name: Option<String>,
#[serde(default)]
pub last_name: Option<String>,
#[serde(default)]
pub avatar_url: Option<String>,
#[serde(default)]
pub email_verified: Option<bool>,
#[serde(default)]
pub metadata: Option<HashMap<String, serde_json::Value>>,
#[serde(default)]
pub org_id: Option<String>,
#[serde(default)]
pub org_slug: Option<String>,
#[serde(default)]
pub org_role: Option<String>,
#[serde(default)]
pub org_permissions: Option<Vec<String>>,
}
impl NucleusClaims {
pub fn user_id(&self) -> &str {
&self.sub
}
}