diff --git a/src/types/order_info.rs b/src/types/order_info.rs index e5b35bbc..a512b7ac 100644 --- a/src/types/order_info.rs +++ b/src/types/order_info.rs @@ -5,17 +5,17 @@ use crate::types::ShippingAddress; /// This object represents information about an order. /// /// [The official docs](https://core.telegram.org/bots/api#orderinfo). -#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)] +#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize, Default)] pub struct OrderInfo { /// User's name. - pub name: String, + pub name: Option, /// User's phone number. - pub phone_number: String, + pub phone_number: Option, /// User's email. - pub email: String, + pub email: Option, /// User's shipping address. - pub shipping_address: ShippingAddress, + pub shipping_address: Option, } diff --git a/src/types/pre_checkout_query.rs b/src/types/pre_checkout_query.rs index 172e5e8f..75fb909c 100644 --- a/src/types/pre_checkout_query.rs +++ b/src/types/pre_checkout_query.rs @@ -35,5 +35,6 @@ pub struct PreCheckoutQuery { pub shipping_option_id: Option, /// Order info provided by the user. - pub order_info: Option, + #[serde(default)] + pub order_info: OrderInfo, } diff --git a/src/types/successful_payment.rs b/src/types/successful_payment.rs index d38a36b5..270768c4 100644 --- a/src/types/successful_payment.rs +++ b/src/types/successful_payment.rs @@ -29,7 +29,8 @@ pub struct SuccessfulPayment { pub shipping_option_id: Option, /// Order info provided by the user. - pub order_info: Option, + #[serde(default)] + pub order_info: OrderInfo, /// Telegram payment identifier. pub telegram_payment_charge_id: String,