use crate::model::TelegramPassportElement;
use serde::{Deserialize, Serialize};
use telexide_proc_macros::build_struct;
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct SetPassportDataErrors {
pub user_id: i64,
pub errors: Vec<PassportElementError>,
}
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "source")]
pub enum PassportElementError {
#[serde(rename = "data")]
DataField(PassportElementErrorDataField),
#[serde(rename = "front_side")]
FrontSide(PassportElementErrorFrontSide),
#[serde(rename = "reverse_side")]
ReverseSide(PassportElementErrorReverseSide),
#[serde(rename = "selfie")]
Selfie(PassportElementErrorSelfie),
#[serde(rename = "file")]
File(PassportElementErrorFile),
#[serde(rename = "files")]
Files(PassportElementErrorFiles),
#[serde(rename = "translation_file")]
TranslationFile(PassportElementErrorTranslationFile),
#[serde(rename = "translation_files")]
TranslationFiles(PassportElementErrorTranslationFiles),
#[serde(rename = "unspecified")]
Unspecified(PassportElementErrorUnspecified),
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorDataField {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub field_name: String,
pub data_hash: String,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorFrontSide {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hash: String,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorReverseSide {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hash: String,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorSelfie {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hash: String,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorFile {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hash: String,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorFiles {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hashes: Vec<String>,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorTranslationFile {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hash: String,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorTranslationFiles {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub file_hashes: Vec<String>,
pub message: String,
}
#[build_struct]
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq)]
pub struct PassportElementErrorUnspecified {
#[serde(rename = "type")]
pub section_type: TelegramPassportElement,
pub element_hash: String,
pub message: String,
}