use serde::{Deserialize, Serialize};
use crate::{
api::{Method, Payload, PayloadError},
types::Integer,
};
#[serde_with::skip_serializing_none]
#[derive(Clone, Debug, Deserialize, PartialEq, PartialOrd, Serialize)]
pub struct RefundedPayment {
pub currency: String,
pub invoice_payload: String,
pub telegram_payment_charge_id: String,
pub total_amount: Integer,
pub provider_payment_charge_id: Option<String>,
}
#[derive(Clone, Debug, Serialize)]
pub struct RefundStarPayment {
user_id: Integer,
telegram_payment_charge_id: String,
}
impl RefundStarPayment {
pub fn new<T>(user_id: Integer, telegram_payment_charge_id: T) -> Self
where
T: Into<String>,
{
Self {
user_id,
telegram_payment_charge_id: telegram_payment_charge_id.into(),
}
}
}
impl Method for RefundStarPayment {
type Response = bool;
fn into_payload(self) -> Result<Payload, PayloadError> {
Payload::json("refundStarPayment", self)
}
}