use serde::{Serialize, Deserialize};
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum LoginState {
#[default]
SignIn,
SignUp,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum DialogType {
#[default]
AccountChooser,
AutoReauthn,
ConfirmIdpLogin,
Error,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum DialogButton {
#[default]
ConfirmIdpLoginContinue,
ErrorGotIt,
ErrorMoreDetails,
}
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Default)]
pub enum AccountUrlType {
#[default]
TermsOfService,
PrivacyPolicy,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct Account {
pub accountId: String,
pub email: String,
pub name: String,
pub givenName: String,
pub pictureUrl: String,
pub idpConfigUrl: String,
pub idpLoginUrl: String,
pub loginState: LoginState,
#[serde(skip_serializing_if = "Option::is_none")]
pub termsOfServiceUrl: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub privacyPolicyUrl: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct EnableParams {
#[serde(skip_serializing_if = "Option::is_none")]
pub disableRejectionDelay: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct SelectAccountParams {
pub dialogId: String,
pub accountIndex: u64,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct ClickDialogButtonParams {
pub dialogId: String,
pub dialogButton: DialogButton,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct OpenUrlParams {
pub dialogId: String,
pub accountIndex: u64,
pub accountUrlType: AccountUrlType,
}
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
#[serde(rename_all = "camelCase")]
pub struct DismissDialogParams {
pub dialogId: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub triggerCooldown: Option<bool>,
}