use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CouponRewardRequest {
CouponCashBackRewardRequest(Box<models::CouponCashBackRewardRequest>),
CouponDiscountRewardRequest(Box<models::CouponDiscountRewardRequest>),
CouponFreeRewardRequest(Box<models::CouponFreeRewardRequest>),
CouponGiftRewardRequest(Box<models::CouponGiftRewardRequest>),
CouponOthersRewardRequest(Box<models::CouponOthersRewardRequest>),
}
impl Default for CouponRewardRequest {
fn default() -> Self {
Self::CouponCashBackRewardRequest(Box::new(Default::default()))
}
}
impl From<models::CouponCashBackRewardRequest> for CouponRewardRequest {
fn from(value: models::CouponCashBackRewardRequest) -> Self {
CouponRewardRequest::CouponCashBackRewardRequest(Box::new(value))
}
}
impl From<models::CouponDiscountRewardRequest> for CouponRewardRequest {
fn from(value: models::CouponDiscountRewardRequest) -> Self {
CouponRewardRequest::CouponDiscountRewardRequest(Box::new(value))
}
}
impl From<models::CouponFreeRewardRequest> for CouponRewardRequest {
fn from(value: models::CouponFreeRewardRequest) -> Self {
CouponRewardRequest::CouponFreeRewardRequest(Box::new(value))
}
}
impl From<models::CouponGiftRewardRequest> for CouponRewardRequest {
fn from(value: models::CouponGiftRewardRequest) -> Self {
CouponRewardRequest::CouponGiftRewardRequest(Box::new(value))
}
}
impl From<models::CouponOthersRewardRequest> for CouponRewardRequest {
fn from(value: models::CouponOthersRewardRequest) -> Self {
CouponRewardRequest::CouponOthersRewardRequest(Box::new(value))
}
}