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

namespace Topsdk.Top.Defaultability.Domain;

public class TaobaoTbkDgMaterialOptionalUpgradePublishInfo
{

    /*
        商品信息-收入比率(%)；商品佣金比率+补贴比率
    */
    private string? incomeRate;


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


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


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


    /*
        预热活动到手价对应的佣金比率
    */
    private string? futureActivityCommissionRate;


    /*
        预热价活动开始时间
    */
    private string? futureActivityTime;


    /*
        定向计划集合-仅支持联系商务或运营小二申请定向计划合集字段权限
    */
    private IList<TaobaoTbkDgMaterialOptionalUpgradeSpCampaign>? spCampaignList;


    /*
        榜单url
    */
    private string? rankPageUrl;


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


    /*
        商品佣金信息
    */
    private TaobaoTbkDgMaterialOptionalUpgradeFinalIncomeInfo? incomeInfo;


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


    /*
        额外奖励活动金额，活动奖励金额的类型与cpa_reward_type字段对应，如果一个商品有多个奖励类型，返回结果使用空格分割
    */
    private string? cpaRewardAmount;


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


    /*
        两小时推广销量。 非实时，约半小时更新
    */
    private long? twoHourPromotionSales;


    /*
        当天推广销量。 非实时，约1小时更新
    */
    private long? dailyPromotionSales;



    [JsonPropertyName("income_rate")]
    public string? IncomeRate
    {
        get => incomeRate;
        set => this.incomeRate = value;
    }

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

    [JsonPropertyName("click_url")]
    public string? ClickUrl
    {
        get => clickUrl;
        set => this.clickUrl = value;
    }

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

    [JsonPropertyName("future_activity_commission_rate")]
    public string? FutureActivityCommissionRate
    {
        get => futureActivityCommissionRate;
        set => this.futureActivityCommissionRate = value;
    }

    [JsonPropertyName("future_activity_time")]
    public string? FutureActivityTime
    {
        get => futureActivityTime;
        set => this.futureActivityTime = value;
    }

    [JsonPropertyName("sp_campaign_list")]
    public IList<TaobaoTbkDgMaterialOptionalUpgradeSpCampaign>? SpCampaignList
    {
        get => spCampaignList;
        set => this.spCampaignList = value;
    }

    [JsonPropertyName("rank_page_url")]
    public string? RankPageUrl
    {
        get => rankPageUrl;
        set => this.rankPageUrl = value;
    }

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

    [JsonPropertyName("income_info")]
    public TaobaoTbkDgMaterialOptionalUpgradeFinalIncomeInfo? IncomeInfo
    {
        get => incomeInfo;
        set => this.incomeInfo = value;
    }

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

    [JsonPropertyName("cpa_reward_amount")]
    public string? CpaRewardAmount
    {
        get => cpaRewardAmount;
        set => this.cpaRewardAmount = value;
    }

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

    [JsonPropertyName("two_hour_promotion_sales")]
    public long? TwoHourPromotionSales
    {
        get => twoHourPromotionSales;
        set => this.twoHourPromotionSales = value;
    }

    [JsonPropertyName("daily_promotion_sales")]
    public long? DailyPromotionSales
    {
        get => dailyPromotionSales;
        set => this.dailyPromotionSales = value;
    }

}

