package com.kym.entity.platform;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.annotation.JSONCreator;
import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * 订单对账结果信息
 */
@Data
public class PlatformCheckChargeOrders {

    /**
     * 订单对账流水号
     */
    private String CheckOrderSeq;

    /**
     * 账单开始时间
     */
    private String StartTime;

    /**
     * 账单结束时间
     */
    private String EndTime;

    /**
     * 订单数量N
     */
    private Integer OrderCount;

    /**
     * 总电量（小数点后4位）
     */
    private Double TotalOrderPower;

    /**
     * 总金额（小数点后2位）
     */
    private Double TotalOrderMoney;

    /**
     * 单项订单对账信息体
     */
    private List<PlatformCheckOrder> CheckOrders;


    @JSONCreator
    public void PlatformCheckOrder(@JSONField(name = "ChargeOrders") JSONArray array) {
        this.CheckOrders = array.toJavaList(PlatformCheckOrder.class);
    }

    @Data
    public static class PlatformCheckOrder {
        /**
         * 充电订单号
         */
        private String StartChargeSeq;

        /**
         * 总电量（小数点后4位）
         */
        private Double TotalOrderPower;

        /**
         * 总金额（小数点后2位）
         */
        private Double TotalOrderMoney;
    }


    /**
     * 争议订单信息
     */
    @Data
    @Accessors(chain = true)
    public static class DisputeOrder {

        public static final int DISPUTE_REASON_TRANSACTION_NOT_EXIST = 1;
        public static final int DISPUTE_REASON_TRANSACTION_MONEY_ERROR = 2;
        public static final int DISPUTE_REASON_TRANSACTION_POWER_ERROR = 3;

        /**
         * 充电订单号
         */
        private String StartChargeSeq;
        /**
         * 总电量（小数点后4位）
         */
        private double TotalPower;

        /**
         * 总金额（小数点后2位）
         */
        private double TotalMoney;

        /**
         * 争议原因（1：交易不存在 2：交易金额错误 3：交易电量错误）
         */
        private Integer DisputeReason;

    }

}
