use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum CouponRewardResponse {
CouponCashBackRewardResponse(Box<models::CouponCashBackRewardResponse>),
CouponDiscountRewardResponse(Box<models::CouponDiscountRewardResponse>),
CouponFreeRewardResponse(Box<models::CouponFreeRewardResponse>),
CouponGiftRewardResponse(Box<models::CouponGiftRewardResponse>),
CouponOthersRewardResponse(Box<models::CouponOthersRewardResponse>),
}
impl Default for CouponRewardResponse {
fn default() -> Self {
Self::CouponCashBackRewardResponse(Box::new(Default::default()))
}
}
impl From<models::CouponCashBackRewardResponse> for CouponRewardResponse {
fn from(value: models::CouponCashBackRewardResponse) -> Self {
CouponRewardResponse::CouponCashBackRewardResponse(Box::new(value))
}
}
impl From<models::CouponDiscountRewardResponse> for CouponRewardResponse {
fn from(value: models::CouponDiscountRewardResponse) -> Self {
CouponRewardResponse::CouponDiscountRewardResponse(Box::new(value))
}
}
impl From<models::CouponFreeRewardResponse> for CouponRewardResponse {
fn from(value: models::CouponFreeRewardResponse) -> Self {
CouponRewardResponse::CouponFreeRewardResponse(Box::new(value))
}
}
impl From<models::CouponGiftRewardResponse> for CouponRewardResponse {
fn from(value: models::CouponGiftRewardResponse) -> Self {
CouponRewardResponse::CouponGiftRewardResponse(Box::new(value))
}
}
impl From<models::CouponOthersRewardResponse> for CouponRewardResponse {
fn from(value: models::CouponOthersRewardResponse) -> Self {
CouponRewardResponse::CouponOthersRewardResponse(Box::new(value))
}
}