use serde::{Deserialize, Serialize};
use strum::{EnumString, IntoStaticStr};
use crate::account_server::otp::Otp;
pub type AccountToken = Otp;
#[derive(Debug, Serialize, Deserialize, IntoStaticStr, EnumString, Clone, Copy, PartialEq, Eq)]
#[strum(serialize_all = "lowercase")]
pub enum AccountTokenOperation {
LogoutAll,
LinkCredential,
Delete,
}
pub type SecretKey = [u8; 32];
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AccountTokenEmailRequest {
pub email: email_address::EmailAddress,
pub op: AccountTokenOperation,
pub secret_key: Option<SecretKey>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AccountTokenSteamRequest {
pub steam_ticket: Vec<u8>,
pub op: AccountTokenOperation,
pub secret_key: Option<SecretKey>,
}