#![allow(clippy::pedantic, clippy::nursery, clippy::all)]
use serde::{Deserialize, Serialize};
pub type Access = String;
pub const ACCESS_UNKNOWN: &str = "unknown";
pub const ACCESS_NONE: &str = "none";
pub const ACCESS_SAFE: &str = "safe";
pub const ACCESS_FULL: &str = "full";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Config {
pub regions: Vec<ConfigRegion>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ConfigRegionRulesItemRefs {
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleDefault")]
BskyAgeassuranceDefsConfigRegionRuleDefault(Box<ConfigRegionRuleDefault>),
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleIfDeclaredOverAge")]
BskyAgeassuranceDefsConfigRegionRuleIfDeclaredOverAge(Box<ConfigRegionRuleIfDeclaredOverAge>),
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleIfDeclaredUnderAge")]
BskyAgeassuranceDefsConfigRegionRuleIfDeclaredUnderAge(Box<ConfigRegionRuleIfDeclaredUnderAge>),
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleIfAssuredOverAge")]
BskyAgeassuranceDefsConfigRegionRuleIfAssuredOverAge(Box<ConfigRegionRuleIfAssuredOverAge>),
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleIfAssuredUnderAge")]
BskyAgeassuranceDefsConfigRegionRuleIfAssuredUnderAge(Box<ConfigRegionRuleIfAssuredUnderAge>),
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleIfAccountNewerThan")]
BskyAgeassuranceDefsConfigRegionRuleIfAccountNewerThan(Box<ConfigRegionRuleIfAccountNewerThan>),
#[serde(rename = "app.bsky.ageassurance.defs#configRegionRuleIfAccountOlderThan")]
BskyAgeassuranceDefsConfigRegionRuleIfAccountOlderThan(Box<ConfigRegionRuleIfAccountOlderThan>),
#[serde(other)]
Other,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegion {
pub country_code: String,
pub min_access_age: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub region_code: Option<String>,
pub rules: Vec<ConfigRegionRulesItemRefs>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleDefault {
pub access: Access,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleIfAccountNewerThan {
pub access: Access,
pub date: proto_blue_syntax::Datetime,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleIfAccountOlderThan {
pub access: Access,
pub date: proto_blue_syntax::Datetime,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleIfAssuredOverAge {
pub access: Access,
pub age: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleIfAssuredUnderAge {
pub access: Access,
pub age: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleIfDeclaredOverAge {
pub access: Access,
pub age: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConfigRegionRuleIfDeclaredUnderAge {
pub access: Access,
pub age: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Event {
pub access: String,
pub attempt_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub complete_ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub complete_ua: Option<String>,
pub country_code: String,
pub created_at: proto_blue_syntax::Datetime,
#[serde(skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub init_ip: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub init_ua: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub region_code: Option<String>,
pub status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct State {
pub access: Access,
#[serde(skip_serializing_if = "Option::is_none")]
pub last_initiated_at: Option<proto_blue_syntax::Datetime>,
pub status: Status,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StateMetadata {
#[serde(skip_serializing_if = "Option::is_none")]
pub account_created_at: Option<proto_blue_syntax::Datetime>,
}
pub type Status = String;
pub const STATUS_UNKNOWN: &str = "unknown";
pub const STATUS_PENDING: &str = "pending";
pub const STATUS_ASSURED: &str = "assured";
pub const STATUS_BLOCKED: &str = "blocked";