package com.yuchen.saas.parking.charge.api.vo.charge;

import com.yuchen.saas.parking.charge.api.entity.charge.SpcOccupyFeeBill;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;

import java.util.List;

@Data
@ApiModel(value = "发起充电返回信息")
public class SpcLanuchChargeResultVo {

        private Integer result; //1 成功   0失败

        private Integer failureType; // 1.钱包余额不足 2.枪已经在充电  3.充电桩故障 4.空闲中，未插枪 ,5 IOT发起充电失败 6.充电桩信息读取异常

        private String desc;  //描述

        private Integer gunConnectStatus; //1 已连接 2 未连接

        private Integer gunWorkStatus; //枪工作状态  0-空闲,1-充电,2-充完,4-故障，5-等待充电，6-预约，7-在线更新

        private Long billId;  //充电成功返回订单id

        private String chargeSn ; //充电成功返回充电订单sn

        private List<SpcOccupyFeeBill> unPaidOccupyFeeList ; //充电成功返回充电订单sn

        @Getter
        @AllArgsConstructor
        public enum LanuchChargeResultEnum {
                failure(0,"失败"),
                success(1,"成功");
                final Integer value;
                final String desc;
        }
        @Getter
        @AllArgsConstructor
        public enum LanuchFailureTypeEnum {
                Balance_Not_Enough(1,"钱包余额不足"),
                Already_Charging(2,"枪已经在充电"),
                Break_Down(3,"充电桩故障"),
                Not_inserted(4,"空闲中，未插枪"),
                Iot_LanuchFail(5,"IOT发起充电失败"),
                Save_Fail(6,"保存充电订单失败"),
                Read_Info_Fail(7,"充电桩信息读取异常"),
                Insert_Again(8,"请先把枪插回充电桩再开始"),
                Free_Money_Fail(9,"冻结钱包失败"),
                Lanuch_Charginging(10,"电桩发起充电中,请稍后再试"),
                Refuse_owe_user(11,"历史占位费未支付,请先支付再充电");
                final Integer value;
                final String desc;
        }
}
