using System.Text.Json.Serialization;
using System.Collections.Generic;
using Topsdk.Util;

namespace Topsdk.Top.Ability370.Domain;

public class TaobaoTbkDgMaterialTemporaryOptionalMapData
{

    /*
        优惠券信息-优惠券开始时间
    */
    private string? couponStartTime;


    /*
        优惠券信息-优惠券结束时间
    */
    private string? couponEndTime;


    /*
        商品信息-定向计划信息
    */
    private string? infoDxjh;


    /*
        商品信息-淘客30天推广量
    */
    private string? tkTotalSales;


    /*
        商品信息-月支出佣金(该字段废弃，请勿再用)
    */
    private string? tkTotalCommi;


    /*
        优惠券信息-优惠券id
    */
    private string? couponId;


    /*
        商品信息-宝贝id(该字段废弃，请勿再用)
    */
    private string? numIid;


    /*
        商品信息-商品标题
    */
    private string? title;


    /*
        商品信息-商品主图
    */
    private string? pictUrl;


    /*
        商品信息-商品小图列表
    */
    private IList<string>? smallImages;


    /*
        商品信息-商品一口价格
    */
    private string? reservePrice;


    /*
        折扣价（元） 若属于预售商品，付定金时间内，折扣价=预售价
    */
    private string? zkFinalPrice;


    /*
        店铺信息-卖家类型。0表示集市，1表示天猫
    */
    private long? userType;


    /*
        商品信息-宝贝所在地
    */
    private string? provcity;


    /*
        链接-宝贝地址
    */
    private string? itemUrl;


    /*
        商品信息-是否包含营销计划
    */
    private string? includeMkt;


    /*
        商品信息-是否包含定向计划
    */
    private string? includeDxjh;


    /*
        商品信息-佣金比率。1550表示15.5%
    */
    private string? commissionRate;


    /*
        商品信息-30天销量（饿了么卡券信息-总销量）
    */
    private long? volume;


    /*
        店铺信息-店铺名称
    */
    private string? shopTitle;


    /*
        优惠券信息-优惠券总量
    */
    private long? couponTotalCount;


    /*
        优惠券信息-优惠券剩余量
    */
    private long? couponRemainCount;


    /*
        优惠券信息-优惠券满减信息
    */
    private string? couponInfo;


    /*
        商品信息-佣金类型。MKT表示营销计划，SP表示定向计划，COMMON表示通用计划
    */
    private string? commissionType;


    /*
        店铺信息-店铺dsr评分
    */
    private long? shopDsr;


    /*
        链接-宝贝+券二合一页面链接
    */
    private string? couponShareUrl;


    /*
        链接-宝贝推广链接
    */
    private string? url;


    /*
        商品信息-一级类目名称
    */
    private string? levelOneCategoryName;


    /*
        商品信息-一级类目ID
    */
    private long? levelOneCategoryId;


    /*
        商品信息-叶子类目名称
    */
    private string? categoryName;


    /*
        商品信息-叶子类目id
    */
    private long? categoryId;


    /*
        商品信息-商品短标题
    */
    private string? shortTitle;


    /*
        商品信息-商品白底图
    */
    private string? whiteImage;


    /*
        拼团专用-拼团结束时间
    */
    private string? oetime;


    /*
        拼团专用-拼团开始时间
    */
    private string? ostime;


    /*
        拼团专用-拼团几人团
    */
    private long? jddNum;


    /*
        拼团专用-拼团拼成价，单位元
    */
    private string? jddPrice;


    /*
        预售专用-预售数量
    */
    private long? uvSumPreSale;


    /*
        链接-物料块id(测试中请勿使用)
    */
    private string? xId;


    /*
        优惠券信息-优惠券起用门槛，满X元可用。如：满299元减20元
    */
    private string? couponStartFee;


    /*
        优惠券（元） 若属于预售商品，该优惠券付尾款可用，付定金不可用
    */
    private string? couponAmount;


    /*
        商品信息-宝贝描述(推荐理由)
    */
    private string? itemDescription;


    /*
        店铺信息-卖家昵称
    */
    private string? nick;


    /*
        拼团专用-拼团一人价（原价)，单位元
    */
    private string? origPrice;


    /*
        拼团专用-拼团库存数量
    */
    private long? totalStock;


    /*
        拼团专用-拼团已售数量
    */
    private long? sellNum;


    /*
        拼团专用-拼团剩余库存
    */
    private long? stock;


    /*
        营销-天猫营销玩法
    */
    private string? tmallPlayActivityInfo;


    /*
        商品信息-宝贝id
    */
    private string? itemId;


    /*
        商品邮费
    */
    private string? realPostFee;


    /*
        锁住的佣金率
    */
    private string? lockRate;


    /*
        锁佣结束时间
    */
    private long? lockRateEndTime;


    /*
        锁佣开始时间
    */
    private long? lockRateStartTime;


    /*
        预售商品-优惠
    */
    private string? presaleDiscountFeeText;


    /*
        预售商品-付尾款结束时间（毫秒）
    */
    private long? presaleTailEndTime;


    /*
        预售商品-付尾款开始时间（毫秒）
    */
    private long? presaleTailStartTime;


    /*
        预售商品-付定金结束时间（毫秒）
    */
    private long? presaleEndTime;


    /*
        预售商品-付定金开始时间（毫秒）
    */
    private long? presaleStartTime;


    /*
        预售商品-定金（元）
    */
    private string? presaleDeposit;


    /*
        预售有礼-淘礼金发放时间
    */
    private string? ysylTljSendTime;


    /*
        预售有礼-佣金比例（ 预售有礼活动享受的推广佣金比例，注：推广该活动有特殊分成规则，请详见：https://tbk.bbs.taobao.com/detail.html?appId=45301&postId=9334376 ）
    */
    private string? ysylCommissionRate;


    /*
        预售有礼-预估淘礼金（元）
    */
    private string? ysylTljFace;


    /*
        预售有礼-推广链接
    */
    private string? ysylClickUrl;


    /*
        预售有礼-淘礼金使用结束时间
    */
    private string? ysylTljUseEndTime;


    /*
        预售有礼-淘礼金使用开始时间
    */
    private string? ysylTljUseStartTime;


    /*
        本地化-销售开始时间
    */
    private string? saleBeginTime;


    /*
        本地化-销售结束时间
    */
    private string? saleEndTime;


    /*
        本地化-到门店距离（米）
    */
    private string? distance;


    /*
        本地化-可用店铺id
    */
    private string? usableShopId;


    /*
        本地化-可用店铺名称
    */
    private string? usableShopName;


    /*
        活动价
    */
    private string? salePrice;


    /*
        跨店满减信息
    */
    private string? kuadianPromotionInfo;


    /*
        是否品牌精选，0不是，1是
    */
    private string? superiorBrand;


    /*
        比价场景专用，当系统检测到入参消费者ID购买当前商品会获得《天天开彩蛋》玩法的彩蛋时，该字段显示1，否则为0
    */
    private long? rewardInfo;


    /*
        是否品牌快抢，0不是，1是
    */
    private string? isBrandFlashSale;


    /*
        本地化-扩展信息
    */
    private string? localizationExtend;


    /*
        物料评估-匹配分
    */
    private string? matchScore;


    /*
        物料评估-收益分
    */
    private string? commiScore;


    /*
        是否是热门商品，0不是，1是
    */
    private string? hotFlag;


    /*
        前N件佣金信息-前N件佣金生效或预热时透出以下字段
    */
    private TaobaoTbkDgMaterialTemporaryOptionalStepRateDTO? topnInfo;


    /*
        百亿补贴信息
    */
    private TaobaoTbkDgMaterialTemporaryOptionalTopNInfoDTO? bybtInfo;


    /*
        商品入驻淘特后产生的所有销量量级，不特指某段具体时间
    */
    private string? ttSoldCount;


    /*
        猫超买返卡信息
    */
    private TaobaoTbkDgMaterialTemporaryOptionalMaifanPromotionDTO? maifanPromotion;


    /*
        额外奖励活动类型，如果一个商品有多个奖励类型，返回结果使用空格分割，0=单单奖励，1=超级单单奖励
    */
    private string? cpaRewardType;



    [JsonPropertyName("coupon_start_time")]
    public string? CouponStartTime
    {
        get => couponStartTime;
        set => this.couponStartTime = value;
    }

    [JsonPropertyName("coupon_end_time")]
    public string? CouponEndTime
    {
        get => couponEndTime;
        set => this.couponEndTime = value;
    }

    [JsonPropertyName("info_dxjh")]
    public string? InfoDxjh
    {
        get => infoDxjh;
        set => this.infoDxjh = value;
    }

    [JsonPropertyName("tk_total_sales")]
    public string? TkTotalSales
    {
        get => tkTotalSales;
        set => this.tkTotalSales = value;
    }

    [JsonPropertyName("tk_total_commi")]
    public string? TkTotalCommi
    {
        get => tkTotalCommi;
        set => this.tkTotalCommi = value;
    }

    [JsonPropertyName("coupon_id")]
    public string? CouponId
    {
        get => couponId;
        set => this.couponId = value;
    }

    [JsonPropertyName("num_iid")]
    public string? NumIid
    {
        get => numIid;
        set => this.numIid = value;
    }

    [JsonPropertyName("title")]
    public string? Title
    {
        get => title;
        set => this.title = value;
    }

    [JsonPropertyName("pict_url")]
    public string? PictUrl
    {
        get => pictUrl;
        set => this.pictUrl = value;
    }

    [JsonPropertyName("small_images")]
    public IList<string>? SmallImages
    {
        get => smallImages;
        set => this.smallImages = value;
    }

    [JsonPropertyName("reserve_price")]
    public string? ReservePrice
    {
        get => reservePrice;
        set => this.reservePrice = value;
    }

    [JsonPropertyName("zk_final_price")]
    public string? ZkFinalPrice
    {
        get => zkFinalPrice;
        set => this.zkFinalPrice = value;
    }

    [JsonPropertyName("user_type")]
    public long? UserType
    {
        get => userType;
        set => this.userType = value;
    }

    [JsonPropertyName("provcity")]
    public string? Provcity
    {
        get => provcity;
        set => this.provcity = value;
    }

    [JsonPropertyName("item_url")]
    public string? ItemUrl
    {
        get => itemUrl;
        set => this.itemUrl = value;
    }

    [JsonPropertyName("include_mkt")]
    public string? IncludeMkt
    {
        get => includeMkt;
        set => this.includeMkt = value;
    }

    [JsonPropertyName("include_dxjh")]
    public string? IncludeDxjh
    {
        get => includeDxjh;
        set => this.includeDxjh = value;
    }

    [JsonPropertyName("commission_rate")]
    public string? CommissionRate
    {
        get => commissionRate;
        set => this.commissionRate = value;
    }

    [JsonPropertyName("volume")]
    public long? Volume
    {
        get => volume;
        set => this.volume = value;
    }

    [JsonPropertyName("shop_title")]
    public string? ShopTitle
    {
        get => shopTitle;
        set => this.shopTitle = value;
    }

    [JsonPropertyName("coupon_total_count")]
    public long? CouponTotalCount
    {
        get => couponTotalCount;
        set => this.couponTotalCount = value;
    }

    [JsonPropertyName("coupon_remain_count")]
    public long? CouponRemainCount
    {
        get => couponRemainCount;
        set => this.couponRemainCount = value;
    }

    [JsonPropertyName("coupon_info")]
    public string? CouponInfo
    {
        get => couponInfo;
        set => this.couponInfo = value;
    }

    [JsonPropertyName("commission_type")]
    public string? CommissionType
    {
        get => commissionType;
        set => this.commissionType = value;
    }

    [JsonPropertyName("shop_dsr")]
    public long? ShopDsr
    {
        get => shopDsr;
        set => this.shopDsr = value;
    }

    [JsonPropertyName("coupon_share_url")]
    public string? CouponShareUrl
    {
        get => couponShareUrl;
        set => this.couponShareUrl = value;
    }

    [JsonPropertyName("url")]
    public string? Url
    {
        get => url;
        set => this.url = value;
    }

    [JsonPropertyName("level_one_category_name")]
    public string? LevelOneCategoryName
    {
        get => levelOneCategoryName;
        set => this.levelOneCategoryName = value;
    }

    [JsonPropertyName("level_one_category_id")]
    public long? LevelOneCategoryId
    {
        get => levelOneCategoryId;
        set => this.levelOneCategoryId = value;
    }

    [JsonPropertyName("category_name")]
    public string? CategoryName
    {
        get => categoryName;
        set => this.categoryName = value;
    }

    [JsonPropertyName("category_id")]
    public long? CategoryId
    {
        get => categoryId;
        set => this.categoryId = value;
    }

    [JsonPropertyName("short_title")]
    public string? ShortTitle
    {
        get => shortTitle;
        set => this.shortTitle = value;
    }

    [JsonPropertyName("white_image")]
    public string? WhiteImage
    {
        get => whiteImage;
        set => this.whiteImage = value;
    }

    [JsonPropertyName("oetime")]
    public string? Oetime
    {
        get => oetime;
        set => this.oetime = value;
    }

    [JsonPropertyName("ostime")]
    public string? Ostime
    {
        get => ostime;
        set => this.ostime = value;
    }

    [JsonPropertyName("jdd_num")]
    public long? JddNum
    {
        get => jddNum;
        set => this.jddNum = value;
    }

    [JsonPropertyName("jdd_price")]
    public string? JddPrice
    {
        get => jddPrice;
        set => this.jddPrice = value;
    }

    [JsonPropertyName("uv_sum_pre_sale")]
    public long? UvSumPreSale
    {
        get => uvSumPreSale;
        set => this.uvSumPreSale = value;
    }

    [JsonPropertyName("x_id")]
    public string? XId
    {
        get => xId;
        set => this.xId = value;
    }

    [JsonPropertyName("coupon_start_fee")]
    public string? CouponStartFee
    {
        get => couponStartFee;
        set => this.couponStartFee = value;
    }

    [JsonPropertyName("coupon_amount")]
    public string? CouponAmount
    {
        get => couponAmount;
        set => this.couponAmount = value;
    }

    [JsonPropertyName("item_description")]
    public string? ItemDescription
    {
        get => itemDescription;
        set => this.itemDescription = value;
    }

    [JsonPropertyName("nick")]
    public string? Nick
    {
        get => nick;
        set => this.nick = value;
    }

    [JsonPropertyName("orig_price")]
    public string? OrigPrice
    {
        get => origPrice;
        set => this.origPrice = value;
    }

    [JsonPropertyName("total_stock")]
    public long? TotalStock
    {
        get => totalStock;
        set => this.totalStock = value;
    }

    [JsonPropertyName("sell_num")]
    public long? SellNum
    {
        get => sellNum;
        set => this.sellNum = value;
    }

    [JsonPropertyName("stock")]
    public long? Stock
    {
        get => stock;
        set => this.stock = value;
    }

    [JsonPropertyName("tmall_play_activity_info")]
    public string? TmallPlayActivityInfo
    {
        get => tmallPlayActivityInfo;
        set => this.tmallPlayActivityInfo = value;
    }

    [JsonPropertyName("item_id")]
    public string? ItemId
    {
        get => itemId;
        set => this.itemId = value;
    }

    [JsonPropertyName("real_post_fee")]
    public string? RealPostFee
    {
        get => realPostFee;
        set => this.realPostFee = value;
    }

    [JsonPropertyName("lock_rate")]
    public string? LockRate
    {
        get => lockRate;
        set => this.lockRate = value;
    }

    [JsonPropertyName("lock_rate_end_time")]
    public long? LockRateEndTime
    {
        get => lockRateEndTime;
        set => this.lockRateEndTime = value;
    }

    [JsonPropertyName("lock_rate_start_time")]
    public long? LockRateStartTime
    {
        get => lockRateStartTime;
        set => this.lockRateStartTime = value;
    }

    [JsonPropertyName("presale_discount_fee_text")]
    public string? PresaleDiscountFeeText
    {
        get => presaleDiscountFeeText;
        set => this.presaleDiscountFeeText = value;
    }

    [JsonPropertyName("presale_tail_end_time")]
    public long? PresaleTailEndTime
    {
        get => presaleTailEndTime;
        set => this.presaleTailEndTime = value;
    }

    [JsonPropertyName("presale_tail_start_time")]
    public long? PresaleTailStartTime
    {
        get => presaleTailStartTime;
        set => this.presaleTailStartTime = value;
    }

    [JsonPropertyName("presale_end_time")]
    public long? PresaleEndTime
    {
        get => presaleEndTime;
        set => this.presaleEndTime = value;
    }

    [JsonPropertyName("presale_start_time")]
    public long? PresaleStartTime
    {
        get => presaleStartTime;
        set => this.presaleStartTime = value;
    }

    [JsonPropertyName("presale_deposit")]
    public string? PresaleDeposit
    {
        get => presaleDeposit;
        set => this.presaleDeposit = value;
    }

    [JsonPropertyName("ysyl_tlj_send_time")]
    public string? YsylTljSendTime
    {
        get => ysylTljSendTime;
        set => this.ysylTljSendTime = value;
    }

    [JsonPropertyName("ysyl_commission_rate")]
    public string? YsylCommissionRate
    {
        get => ysylCommissionRate;
        set => this.ysylCommissionRate = value;
    }

    [JsonPropertyName("ysyl_tlj_face")]
    public string? YsylTljFace
    {
        get => ysylTljFace;
        set => this.ysylTljFace = value;
    }

    [JsonPropertyName("ysyl_click_url")]
    public string? YsylClickUrl
    {
        get => ysylClickUrl;
        set => this.ysylClickUrl = value;
    }

    [JsonPropertyName("ysyl_tlj_use_end_time")]
    public string? YsylTljUseEndTime
    {
        get => ysylTljUseEndTime;
        set => this.ysylTljUseEndTime = value;
    }

    [JsonPropertyName("ysyl_tlj_use_start_time")]
    public string? YsylTljUseStartTime
    {
        get => ysylTljUseStartTime;
        set => this.ysylTljUseStartTime = value;
    }

    [JsonPropertyName("sale_begin_time")]
    public string? SaleBeginTime
    {
        get => saleBeginTime;
        set => this.saleBeginTime = value;
    }

    [JsonPropertyName("sale_end_time")]
    public string? SaleEndTime
    {
        get => saleEndTime;
        set => this.saleEndTime = value;
    }

    [JsonPropertyName("distance")]
    public string? Distance
    {
        get => distance;
        set => this.distance = value;
    }

    [JsonPropertyName("usable_shop_id")]
    public string? UsableShopId
    {
        get => usableShopId;
        set => this.usableShopId = value;
    }

    [JsonPropertyName("usable_shop_name")]
    public string? UsableShopName
    {
        get => usableShopName;
        set => this.usableShopName = value;
    }

    [JsonPropertyName("sale_price")]
    public string? SalePrice
    {
        get => salePrice;
        set => this.salePrice = value;
    }

    [JsonPropertyName("kuadian_promotion_info")]
    public string? KuadianPromotionInfo
    {
        get => kuadianPromotionInfo;
        set => this.kuadianPromotionInfo = value;
    }

    [JsonPropertyName("superior_brand")]
    public string? SuperiorBrand
    {
        get => superiorBrand;
        set => this.superiorBrand = value;
    }

    [JsonPropertyName("reward_info")]
    public long? RewardInfo
    {
        get => rewardInfo;
        set => this.rewardInfo = value;
    }

    [JsonPropertyName("is_brand_flash_sale")]
    public string? IsBrandFlashSale
    {
        get => isBrandFlashSale;
        set => this.isBrandFlashSale = value;
    }

    [JsonPropertyName("localization_extend")]
    public string? LocalizationExtend
    {
        get => localizationExtend;
        set => this.localizationExtend = value;
    }

    [JsonPropertyName("match_score")]
    public string? MatchScore
    {
        get => matchScore;
        set => this.matchScore = value;
    }

    [JsonPropertyName("commi_score")]
    public string? CommiScore
    {
        get => commiScore;
        set => this.commiScore = value;
    }

    [JsonPropertyName("hot_flag")]
    public string? HotFlag
    {
        get => hotFlag;
        set => this.hotFlag = value;
    }

    [JsonPropertyName("topn_info")]
    public TaobaoTbkDgMaterialTemporaryOptionalStepRateDTO? TopnInfo
    {
        get => topnInfo;
        set => this.topnInfo = value;
    }

    [JsonPropertyName("bybt_info")]
    public TaobaoTbkDgMaterialTemporaryOptionalTopNInfoDTO? BybtInfo
    {
        get => bybtInfo;
        set => this.bybtInfo = value;
    }

    [JsonPropertyName("tt_sold_count")]
    public string? TtSoldCount
    {
        get => ttSoldCount;
        set => this.ttSoldCount = value;
    }

    [JsonPropertyName("maifan_promotion")]
    public TaobaoTbkDgMaterialTemporaryOptionalMaifanPromotionDTO? MaifanPromotion
    {
        get => maifanPromotion;
        set => this.maifanPromotion = value;
    }

    [JsonPropertyName("cpa_reward_type")]
    public string? CpaRewardType
    {
        get => cpaRewardType;
        set => this.cpaRewardType = value;
    }

}

