use serde::Serialize;
use serde_json::Value;
use super::AdvancedRequest;
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetBusinessConnectionRequest {
pub business_connection_id: String,
}
impl AdvancedGetBusinessConnectionRequest {
pub fn new(business_connection_id: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
}
}
}
impl AdvancedRequest for AdvancedGetBusinessConnectionRequest {
type Response = Value;
const METHOD: &'static str = "getBusinessConnection";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedReadBusinessMessageRequest {
pub business_connection_id: String,
pub chat_id: i64,
pub message_id: crate::types::common::MessageId,
}
impl AdvancedReadBusinessMessageRequest {
pub fn new(
business_connection_id: impl Into<String>,
chat_id: i64,
message_id: crate::types::common::MessageId,
) -> Self {
Self {
business_connection_id: business_connection_id.into(),
chat_id,
message_id,
}
}
}
impl AdvancedRequest for AdvancedReadBusinessMessageRequest {
type Response = bool;
const METHOD: &'static str = "readBusinessMessage";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedDeleteBusinessMessagesRequest {
pub business_connection_id: String,
pub message_ids: Vec<crate::types::common::MessageId>,
}
impl AdvancedDeleteBusinessMessagesRequest {
pub fn new(
business_connection_id: impl Into<String>,
message_ids: Vec<crate::types::common::MessageId>,
) -> Self {
Self {
business_connection_id: business_connection_id.into(),
message_ids,
}
}
}
impl AdvancedRequest for AdvancedDeleteBusinessMessagesRequest {
type Response = bool;
const METHOD: &'static str = "deleteBusinessMessages";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetBusinessAccountNameRequest {
pub business_connection_id: String,
pub first_name: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub last_name: Option<String>,
}
impl AdvancedSetBusinessAccountNameRequest {
pub fn new(business_connection_id: impl Into<String>, first_name: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
first_name: first_name.into(),
last_name: None,
}
}
}
impl AdvancedRequest for AdvancedSetBusinessAccountNameRequest {
type Response = bool;
const METHOD: &'static str = "setBusinessAccountName";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetBusinessAccountUsernameRequest {
pub business_connection_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub username: Option<String>,
}
impl AdvancedSetBusinessAccountUsernameRequest {
pub fn new(business_connection_id: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
username: None,
}
}
}
impl AdvancedRequest for AdvancedSetBusinessAccountUsernameRequest {
type Response = bool;
const METHOD: &'static str = "setBusinessAccountUsername";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetBusinessAccountBioRequest {
pub business_connection_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub bio: Option<String>,
}
impl AdvancedSetBusinessAccountBioRequest {
pub fn new(business_connection_id: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
bio: None,
}
}
}
impl AdvancedRequest for AdvancedSetBusinessAccountBioRequest {
type Response = bool;
const METHOD: &'static str = "setBusinessAccountBio";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetBusinessAccountProfilePhotoRequest {
pub business_connection_id: String,
pub photo: Value,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_public: Option<bool>,
}
impl AdvancedSetBusinessAccountProfilePhotoRequest {
pub fn new(business_connection_id: impl Into<String>, photo: Value) -> Self {
Self {
business_connection_id: business_connection_id.into(),
photo,
is_public: None,
}
}
}
impl AdvancedRequest for AdvancedSetBusinessAccountProfilePhotoRequest {
type Response = bool;
const METHOD: &'static str = "setBusinessAccountProfilePhoto";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedRemoveBusinessAccountProfilePhotoRequest {
pub business_connection_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_public: Option<bool>,
}
impl AdvancedRemoveBusinessAccountProfilePhotoRequest {
pub fn new(business_connection_id: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
is_public: None,
}
}
}
impl AdvancedRequest for AdvancedRemoveBusinessAccountProfilePhotoRequest {
type Response = bool;
const METHOD: &'static str = "removeBusinessAccountProfilePhoto";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedSetBusinessAccountGiftSettingsRequest {
pub business_connection_id: String,
pub show_gift_button: bool,
pub accepted_gift_types: crate::types::telegram::AcceptedGiftTypes,
}
impl AdvancedSetBusinessAccountGiftSettingsRequest {
pub fn new(
business_connection_id: impl Into<String>,
show_gift_button: bool,
accepted_gift_types: crate::types::telegram::AcceptedGiftTypes,
) -> Self {
Self {
business_connection_id: business_connection_id.into(),
show_gift_button,
accepted_gift_types,
}
}
}
impl AdvancedRequest for AdvancedSetBusinessAccountGiftSettingsRequest {
type Response = bool;
const METHOD: &'static str = "setBusinessAccountGiftSettings";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetBusinessAccountStarBalanceRequest {
pub business_connection_id: String,
}
impl AdvancedGetBusinessAccountStarBalanceRequest {
pub fn new(business_connection_id: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
}
}
}
impl AdvancedRequest for AdvancedGetBusinessAccountStarBalanceRequest {
type Response = Value;
const METHOD: &'static str = "getBusinessAccountStarBalance";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedTransferBusinessAccountStarsRequest {
pub business_connection_id: String,
pub star_count: i64,
}
impl AdvancedTransferBusinessAccountStarsRequest {
pub fn new(business_connection_id: impl Into<String>, star_count: i64) -> Self {
Self {
business_connection_id: business_connection_id.into(),
star_count,
}
}
}
impl AdvancedRequest for AdvancedTransferBusinessAccountStarsRequest {
type Response = bool;
const METHOD: &'static str = "transferBusinessAccountStars";
}
#[derive(Clone, Debug, Serialize)]
pub struct AdvancedGetBusinessAccountGiftsRequest {
pub business_connection_id: String,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_unsaved: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_saved: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_unlimited: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_limited_upgradable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_limited_non_upgradable: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_unique: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub exclude_from_blockchain: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub sort_by_price: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub offset: Option<String>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
}
impl AdvancedGetBusinessAccountGiftsRequest {
pub fn new(business_connection_id: impl Into<String>) -> Self {
Self {
business_connection_id: business_connection_id.into(),
exclude_unsaved: None,
exclude_saved: None,
exclude_unlimited: None,
exclude_limited_upgradable: None,
exclude_limited_non_upgradable: None,
exclude_unique: None,
exclude_from_blockchain: None,
sort_by_price: None,
offset: None,
limit: None,
}
}
}
impl AdvancedRequest for AdvancedGetBusinessAccountGiftsRequest {
type Response = Value;
const METHOD: &'static str = "getBusinessAccountGifts";
}