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

namespace Topsdk.Top.Ability1826.Domain;

public class TaobaoTbkDgVegasTljReportExtra
{

    /*
        领取率，领取淘礼金个数/创建淘礼金个数
    */
    private string? getRate;


    /*
        使用率，使用淘礼金个数/领取淘礼金个数
    */
    private string? useRate;


    /*
        引导付款笔数，同一个红包，若因消费者付款使用后取消订单或退货退款，产生二次红包使用行为，引导付款笔数也会记录两单
    */
    private long? alipayNum;


    /*
        引导付款金额，同一个红包，若因消费者付款使用后取消订单或退货退款，产生二次红包使用行为，引导付款笔数也会记录两单
    */
    private string? alipayAmt;


    /*
        付款佣金，下单付款，产生二次红包使用行为，会记录2次
    */
    private string? prePubShareFeeForDisp;


    /*
        结算佣金，确认收货，产生二次红包使用行为，会记录2次
    */
    private string? cmSettleAmt;


    /*
        领取淘礼金个数
    */
    private long? winPv;


    /*
        领取淘礼金金额
    */
    private string? winSumAmt;


    /*
        未领取淘礼金个数，过了领取有效期或者暂停后没有被领取的红包个数
    */
    private long? remainingNum;


    /*
        未领取金额，过了领取有效期或者暂停后没有被领取的红包金额
    */
    private string? remainingAmt;


    /*
        使用淘礼金个数，同一个红包，若因消费者付款使用后取消订单或退货退款，产生二次红包使用行为，使用淘礼金个数会重复计算
    */
    private long? useNum;


    /*
        使用淘礼金金额，若红包被重复使用（1)淘礼金红包被拆分，并且产生部分退款，会保留部分退款的订单淘礼金金额；若全部退款，会保留订单全部淘礼金金额），因此，已使用金额可能大于消费者实际使用金额（使用红包后，若产生红包退回后再次使用，已使用金额会被二次计算，已使用数量不会）
    */
    private string? useSumAmt;


    /*
        退款淘礼金个数，红包使用后，由于订单取消，退货退款等行为带来的淘礼金红包退回数量，退款红包数量会重复计算
    */
    private long? refundNum;


    /*
        退款淘礼金金额，红包使用后，由于订单取消，退货退款等行为行为带来的淘礼金红包退回数量 （退款红包若产生多次使用，退款红包金额会被多次计算，退款红包数量单日内不重复计算，跨天重复计算）
    */
    private string? refundSumAmt;



    [JsonPropertyName("get_rate")]
    public string? GetRate
    {
        get => getRate;
        set => this.getRate = value;
    }

    [JsonPropertyName("use_rate")]
    public string? UseRate
    {
        get => useRate;
        set => this.useRate = value;
    }

    [JsonPropertyName("alipay_num")]
    public long? AlipayNum
    {
        get => alipayNum;
        set => this.alipayNum = value;
    }

    [JsonPropertyName("alipay_amt")]
    public string? AlipayAmt
    {
        get => alipayAmt;
        set => this.alipayAmt = value;
    }

    [JsonPropertyName("pre_pub_share_fee_for_disp")]
    public string? PrePubShareFeeForDisp
    {
        get => prePubShareFeeForDisp;
        set => this.prePubShareFeeForDisp = value;
    }

    [JsonPropertyName("cm_settle_amt")]
    public string? CmSettleAmt
    {
        get => cmSettleAmt;
        set => this.cmSettleAmt = value;
    }

    [JsonPropertyName("win_pv")]
    public long? WinPv
    {
        get => winPv;
        set => this.winPv = value;
    }

    [JsonPropertyName("win_sum_amt")]
    public string? WinSumAmt
    {
        get => winSumAmt;
        set => this.winSumAmt = value;
    }

    [JsonPropertyName("remaining_num")]
    public long? RemainingNum
    {
        get => remainingNum;
        set => this.remainingNum = value;
    }

    [JsonPropertyName("remaining_amt")]
    public string? RemainingAmt
    {
        get => remainingAmt;
        set => this.remainingAmt = value;
    }

    [JsonPropertyName("use_num")]
    public long? UseNum
    {
        get => useNum;
        set => this.useNum = value;
    }

    [JsonPropertyName("use_sum_amt")]
    public string? UseSumAmt
    {
        get => useSumAmt;
        set => this.useSumAmt = value;
    }

    [JsonPropertyName("refund_num")]
    public long? RefundNum
    {
        get => refundNum;
        set => this.refundNum = value;
    }

    [JsonPropertyName("refund_sum_amt")]
    public string? RefundSumAmt
    {
        get => refundSumAmt;
        set => this.refundSumAmt = value;
    }

}

