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

namespace Topsdk.Top.Defaultability.Domain;

public class TaobaoTbkDgMaterialRecommendMapData
{

    /*
        商品信息-淘宝客新商品id；使用说明参考《淘宝客新商品ID升级》白皮书：https://www.yuque.com/taobaolianmengguanfangxiaoer/zmig94/tfyt0pahmlpzu2ud
    */
    private string? itemId;


    /*
        商品基础信息
    */
    private TaobaoTbkDgMaterialRecommendBasicMapData? itemBasicInfo;


    /*
        价格促销信息
    */
    private TaobaoTbkDgMaterialRecommendPromotionInfoMapData? pricePromotionInfo;


    /*
        淘客推广信息
    */
    private TaobaoTbkDgMaterialRecommendPublishInfo? publishInfo;


    /*
        天猫榜单信息
    */
    private TaobaoTbkDgMaterialRecommendTmallRankInfo? tmallRankInfo;


    /*
        预售信息
    */
    private TaobaoTbkDgMaterialRecommendPresaleInfo? presaleInfo;


    /*
        选品库信息
    */
    private TaobaoTbkDgMaterialRecommendFavoritesInfo? favoritesInfo;


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


    /*
        商品库范围信息
    */
    private TaobaoTbkDgMaterialRecommendScopeInfo? scopeInfo;



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

    [JsonPropertyName("item_basic_info")]
    public TaobaoTbkDgMaterialRecommendBasicMapData? ItemBasicInfo
    {
        get => itemBasicInfo;
        set => this.itemBasicInfo = value;
    }

    [JsonPropertyName("price_promotion_info")]
    public TaobaoTbkDgMaterialRecommendPromotionInfoMapData? PricePromotionInfo
    {
        get => pricePromotionInfo;
        set => this.pricePromotionInfo = value;
    }

    [JsonPropertyName("publish_info")]
    public TaobaoTbkDgMaterialRecommendPublishInfo? PublishInfo
    {
        get => publishInfo;
        set => this.publishInfo = value;
    }

    [JsonPropertyName("tmall_rank_info")]
    public TaobaoTbkDgMaterialRecommendTmallRankInfo? TmallRankInfo
    {
        get => tmallRankInfo;
        set => this.tmallRankInfo = value;
    }

    [JsonPropertyName("presale_info")]
    public TaobaoTbkDgMaterialRecommendPresaleInfo? PresaleInfo
    {
        get => presaleInfo;
        set => this.presaleInfo = value;
    }

    [JsonPropertyName("favorites_info")]
    public TaobaoTbkDgMaterialRecommendFavoritesInfo? FavoritesInfo
    {
        get => favoritesInfo;
        set => this.favoritesInfo = value;
    }

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

    [JsonPropertyName("scope_info")]
    public TaobaoTbkDgMaterialRecommendScopeInfo? ScopeInfo
    {
        get => scopeInfo;
        set => this.scopeInfo = value;
    }

}

