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

namespace Topsdk.Top.Ability414.Domain;

public class TaobaoTbkOrderRefundGetPublisherRefundOrderDTO
{

    /*
        维权编号，是当前订单发生维权退款的编号，非淘宝订单编号，如订单发生多次维权，则会产生多个维权编号
    */
    private string? refundSuitId;


    /*
        淘宝父订单编号(买家在淘宝后台显示的订单编号)
    */
    private string? tbTradeParentId;


    /*
        淘宝子订单编号
    */
    private string? tbTradeId;


    /*
        订单创建时间
    */
    private string? tbTradeCreateTime;


    /*
        订单结算时间
    */
    private string? earningTime;


    /*
        维权创建时间
    */
    private string? tkRefundTime;


    /*
        维权完成时间
    */
    private string? tkRefundSuitTime;


    /*
        订单更新时间
    */
    private string? modifiedTime;


    /*
        商品标题
    */
    private string? itemTitle;


    /*
        推广者角色(二方、三方)
    */
    private string? tkOrderRole;


    /*
        维权创建(淘客结算回执) 4, 维权成功(淘客结算回执) 2, 维权失败(淘客结算回执) 3, 发生多次维权，待处理 11, 从淘客处补扣（钱已结给淘客） 等待扣款 12, 从淘客处补扣（钱已结给淘客） 扣款成功 13, 从卖家处补扣（钱已结给卖家） 等待扣款 14, 从卖家处补扣（钱已结给卖家） 扣款成功 15
    */
    private long? refundStatus;


    /*
        结算金额(订单确认收货后的成交金额）
    */
    private string? tbTradeFinishPrice;


    /*
        维权金额(买家申请维权退款的金额)
    */
    private string? refundFee;


    /*
        结算预估收入=结算金额*提成。以订单确认收货后的成交金额为基数，预估您可能获得的收入。
    */
    private string? pubShareFee;


    /*
        应退还佣金(不含技术服务费和渠道专项服务费)
    */
    private string? tkCommissionFeeRefund;


    /*
        应退还补贴(不含技术服务费和渠道专项服务费)
    */
    private string? tkSubsidyFeeRefund;


    /*
        应退还佣金对应的技术服务费
    */
    private string? tkCommissionAlimmRefundFee;


    /*
        应退还补贴对应的技术服务费
    */
    private string? tkSubsidyAlimmRefundFee;


    /*
        应退还佣金对应的渠道专项服务费
    */
    private string? tkCommissionAgentRefundFee;


    /*
        应退还补贴对应的渠道专项服务费
    */
    private string? tkSubsidyAgentRefundFee;


    /*
        应退还预估收入：订单发生维权退款应退还的预估收入（佣金+补贴，含技术服务费和渠道专项服务费）
    */
    private string? showReturnFee;


    /*
        渠道关系id
    */
    private long? relationId;


    /*
        会员关系id
    */
    private long? specialId;



    [JsonPropertyName("refund_suit_id")]
    public string? RefundSuitId
    {
        get => refundSuitId;
        set => this.refundSuitId = value;
    }

    [JsonPropertyName("tb_trade_parent_id")]
    public string? TbTradeParentId
    {
        get => tbTradeParentId;
        set => this.tbTradeParentId = value;
    }

    [JsonPropertyName("tb_trade_id")]
    public string? TbTradeId
    {
        get => tbTradeId;
        set => this.tbTradeId = value;
    }

    [JsonPropertyName("tb_trade_create_time")]
    public string? TbTradeCreateTime
    {
        get => tbTradeCreateTime;
        set => this.tbTradeCreateTime = value;
    }

    [JsonPropertyName("earning_time")]
    public string? EarningTime
    {
        get => earningTime;
        set => this.earningTime = value;
    }

    [JsonPropertyName("tk_refund_time")]
    public string? TkRefundTime
    {
        get => tkRefundTime;
        set => this.tkRefundTime = value;
    }

    [JsonPropertyName("tk_refund_suit_time")]
    public string? TkRefundSuitTime
    {
        get => tkRefundSuitTime;
        set => this.tkRefundSuitTime = value;
    }

    [JsonPropertyName("modified_time")]
    public string? ModifiedTime
    {
        get => modifiedTime;
        set => this.modifiedTime = value;
    }

    [JsonPropertyName("item_title")]
    public string? ItemTitle
    {
        get => itemTitle;
        set => this.itemTitle = value;
    }

    [JsonPropertyName("tk_order_role")]
    public string? TkOrderRole
    {
        get => tkOrderRole;
        set => this.tkOrderRole = value;
    }

    [JsonPropertyName("refund_status")]
    public long? RefundStatus
    {
        get => refundStatus;
        set => this.refundStatus = value;
    }

    [JsonPropertyName("tb_trade_finish_price")]
    public string? TbTradeFinishPrice
    {
        get => tbTradeFinishPrice;
        set => this.tbTradeFinishPrice = value;
    }

    [JsonPropertyName("refund_fee")]
    public string? RefundFee
    {
        get => refundFee;
        set => this.refundFee = value;
    }

    [JsonPropertyName("pub_share_fee")]
    public string? PubShareFee
    {
        get => pubShareFee;
        set => this.pubShareFee = value;
    }

    [JsonPropertyName("tk_commission_fee_refund")]
    public string? TkCommissionFeeRefund
    {
        get => tkCommissionFeeRefund;
        set => this.tkCommissionFeeRefund = value;
    }

    [JsonPropertyName("tk_subsidy_fee_refund")]
    public string? TkSubsidyFeeRefund
    {
        get => tkSubsidyFeeRefund;
        set => this.tkSubsidyFeeRefund = value;
    }

    [JsonPropertyName("tk_commission_alimm_refund_fee")]
    public string? TkCommissionAlimmRefundFee
    {
        get => tkCommissionAlimmRefundFee;
        set => this.tkCommissionAlimmRefundFee = value;
    }

    [JsonPropertyName("tk_subsidy_alimm_refund_fee")]
    public string? TkSubsidyAlimmRefundFee
    {
        get => tkSubsidyAlimmRefundFee;
        set => this.tkSubsidyAlimmRefundFee = value;
    }

    [JsonPropertyName("tk_commission_agent_refund_fee")]
    public string? TkCommissionAgentRefundFee
    {
        get => tkCommissionAgentRefundFee;
        set => this.tkCommissionAgentRefundFee = value;
    }

    [JsonPropertyName("tk_subsidy_agent_refund_fee")]
    public string? TkSubsidyAgentRefundFee
    {
        get => tkSubsidyAgentRefundFee;
        set => this.tkSubsidyAgentRefundFee = value;
    }

    [JsonPropertyName("show_return_fee")]
    public string? ShowReturnFee
    {
        get => showReturnFee;
        set => this.showReturnFee = value;
    }

    [JsonPropertyName("relation_id")]
    public long? RelationId
    {
        get => relationId;
        set => this.relationId = value;
    }

    [JsonPropertyName("special_id")]
    public long? SpecialId
    {
        get => specialId;
        set => this.specialId = value;
    }

}

