package com.yuchen.saas.payment.api.vo.orderCenter;

import com.yuchen.saas.payment.api.entity.OrderManage;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * @author zhouhanwei
 * @create 2023/6/13 14:58
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class OrderUnpaidVO extends OrderManage {


    /**
     * 延迟支付分钟数
     */
    private Integer surplusMinutes;
    /**
     * 最终实收总金额
     */
    private Long finallyActualAmount;
    /**
     * 当前时间
     */
    private Date newDate;

    /**
     * 订单失效时间
     */
    private Date failureTime;

    /**
     * 待支付充电对象
     */
    @ApiModelProperty(name = "unpaidChargeBill", value = "待支付充电对象")
    private UnpaidChargeBill unpaidChargeBill;

    @Data
    public static class UnpaidChargeBill {

        /**
         * 车牌号
         */
        @ApiModelProperty(name = "plateNo", value = "车牌号")
        private String plateNo;

        /**
         * 电站id
         */
        @ApiModelProperty(name = "spcStationId", value = "电站id")
        private Long spcStationId;

        /**
         * 电站名称
         */
        @ApiModelProperty(name = "spcStationName", value = "电站名称")
        private String spcStationName;

        /**
         * 已充电量
         */
        @ApiModelProperty(name = "currentSoc", value = "已充电量")
        private Integer currentSoc;

        /**
         * 剩余时间
         */
        @ApiModelProperty(name = "timeRemaining", value = "剩余时间")
        private Integer timeRemaining;


        /**
         * 终端编码
         */
        @ApiModelProperty(name = "terminalCode", value = "终端编码")
        private String terminalCode;

        /**
         * 终端名称
         */
        @ApiModelProperty(name = "terminalName", value = "终端名称")
        private String terminalName;

    }

    /**
     * 待支付占位费对象
     */
    @ApiModelProperty(name = "unpaidPlaceholderBill", value = "待支付占位费对象")
    private UnpaidPlaceholderBill unpaidPlaceholderBill;

    @Data
    public static class UnpaidPlaceholderBill {
        @ApiModelProperty(name = "parkSpaceNo", value = "车位号")
        private String parkSpaceNo;

        @ApiModelProperty(name = "chargeTerminalId", value = "充电终端id")
        private Long chargeTerminalId;
        @ApiModelProperty(name = "chargeTerminalNo", value = "终端编码")
        private String chargeTerminalNo;

        /**
         * 停车场名称
         */
        @ApiModelProperty(name = "parkingName", value = "停车场名称")
        private String parkingName;

        /**
         * 电站名称
         */
        @ApiModelProperty(name = "spcStationName", value = "电站名称")
        private String spcStationName;

        /**
         * 车牌号
         */
        @ApiModelProperty(name = "plateNo", value = "车牌号")
        private String plateNo;

        /**
         * 充电车位占用收费总时长（未充电时长）
         */
        @ApiModelProperty(name = "placeIdleTime", value = "充电车位占用收费总时长（未充电时长）")
        private Long placeIdleTime;

        /**
         * 充电车位上停放的总时长（充电加未充电）
         */
        @ApiModelProperty(name = "placeParkingTime", value = "充电车位上停放的总时长（充电加未充电）")
        private Long placeParkingTime;

    }

    /**
     * 待支付停车费对象
     */
    @ApiModelProperty(name = "unpaidParkingBill", value = "待支付停车费对象")
    private UnpaidParkingBill unpaidParkingBill;

    @Data
    public static class UnpaidParkingBill {
        @ApiModelProperty(name = "enterTime", value = "入场时间")
        private Date enterTime;

        /**
         * 停车场名称
         */
        @ApiModelProperty(name = "parkingName", value = "停车场名称")
        private String parkingName;

        /**
         * 车牌号
         */
        @ApiModelProperty(name = "plateNo", value = "车牌号")
        private String plateNo;

        /**
         * 停车时长
         */
        @ApiModelProperty(name = "parkingTime", value = "停车时长")
        private Long parkingTime;

    }

    /**
     * 待支付月卡费用对象
     */
    @ApiModelProperty(name = "unpaidMonthlyCardBill", value = "待支付停车费对象")
    private UnpaidMonthlyCardBill unpaidMonthlyCardBill;

    @Data
    public static class UnpaidMonthlyCardBill {

        /**
         * 园区id
         */
        @ApiModelProperty(name = "parkId", value = "园区id")
        private Long parkId;

        /**
         * 停车场id
         */
        @ApiModelProperty(name = "parkingId", value = "停车场id")
        private Long parkingId;

        /**
         * 停车场名称
         */
        @ApiModelProperty(name = "parkingName", value = "停车场名称")
        private String parkingName;

        /**
         * 收费标准
         */
        @ApiModelProperty(name = "rates", value = "收费标准")
        private Long rates;
        @ApiModelProperty(name = "plateNo", value = "车牌号")
        private String plateNo;
        /**
         * 包月数量
         */
        @ApiModelProperty(name = "monthNumber", value = "包月数量")
        private Integer monthNumber;

    }

    /**
     * 待支付错时卡费用对象
     */
    @ApiModelProperty(name = "unpaidTimingCardBill", value = "待支付错时卡费用对象")
    private UnpaidTimingCardBill unpaidTimingCardBill;

    @Data
    public static class UnpaidTimingCardBill {

        /**
         * 园区id
         */
        @ApiModelProperty(name = "parkId", value = "园区id")
        private Long parkId;

        /**
         * 停车场id
         */
        @ApiModelProperty(name = "parkingId", value = "停车场id")
        private Long parkingId;

        /**
         * 停车场名称
         */
        @ApiModelProperty(name = "parkingName", value = "停车场名称")
        private String parkingName;

        /**
         * 收费标准
         */
        @ApiModelProperty(name = "rates", value = "收费标准")
        private Long rates;

        /**
         * 包月数量
         */
        @ApiModelProperty(name = "monthNumber", value = "包月数量")
        private Integer monthNumber;

    }



}
