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

namespace Topsdk.Top.Ability369.Domain;

public class TaobaoTbkDgOptimusPromotionMapData
{

    /*
        权益类型。1 有价券（需要购买的店铺券或单品券） 2 公开券（直接领取的店铺券或单品券） 3 妈妈券（妈妈渠道领取的店铺券或单品券） 4.品类券 （跨店可用券，可与1，2，3叠加）
    */
    private string? promotionType;


    /*
        优惠门槛类型： 1 满元 2 满件
    */
    private string? conditionType;


    /*
        优惠类型： 1 减钱 2 打折
    */
    private string? discountType;


    /*
        权益信息-总量（权益初始库存量）
    */
    private long? totalCount;


    /*
        权益信息-剩余库存（权益剩余库存量）
    */
    private long? remainCount;


    /*
        权益信息展示开始时间，精确到毫秒时间戳
    */
    private string? displayStartTime;


    /*
        权益信息展示结束时间，精确到毫秒时间戳
    */
    private string? displayEndTime;


    /*
        权益信息
    */
    private IList<TaobaoTbkDgOptimusPromotionPromotionList>? promotionList;


    /*
        权益扩展信息
    */
    private TaobaoTbkDgOptimusPromotionPromotionExtend? promotionExtend;


    /*
        店铺信息-卖家ID
    */
    private string? sellerId;


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


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


    /*
        店铺信息-店铺logo
    */
    private string? shopPictureUrl;



    [JsonPropertyName("promotion_type")]
    public string? PromotionType
    {
        get => promotionType;
        set => this.promotionType = value;
    }

    [JsonPropertyName("condition_type")]
    public string? ConditionType
    {
        get => conditionType;
        set => this.conditionType = value;
    }

    [JsonPropertyName("discount_type")]
    public string? DiscountType
    {
        get => discountType;
        set => this.discountType = value;
    }

    [JsonPropertyName("total_count")]
    public long? TotalCount
    {
        get => totalCount;
        set => this.totalCount = value;
    }

    [JsonPropertyName("remain_count")]
    public long? RemainCount
    {
        get => remainCount;
        set => this.remainCount = value;
    }

    [JsonPropertyName("display_start_time")]
    public string? DisplayStartTime
    {
        get => displayStartTime;
        set => this.displayStartTime = value;
    }

    [JsonPropertyName("display_end_time")]
    public string? DisplayEndTime
    {
        get => displayEndTime;
        set => this.displayEndTime = value;
    }

    [JsonPropertyName("promotion_list")]
    public IList<TaobaoTbkDgOptimusPromotionPromotionList>? PromotionList
    {
        get => promotionList;
        set => this.promotionList = value;
    }

    [JsonPropertyName("promotion_extend")]
    public TaobaoTbkDgOptimusPromotionPromotionExtend? PromotionExtend
    {
        get => promotionExtend;
        set => this.promotionExtend = value;
    }

    [JsonPropertyName("seller_id")]
    public string? SellerId
    {
        get => sellerId;
        set => this.sellerId = value;
    }

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

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

    [JsonPropertyName("shop_picture_url")]
    public string? ShopPictureUrl
    {
        get => shopPictureUrl;
        set => this.shopPictureUrl = value;
    }

}

