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

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.nest.springwrap.core.mp.support.Query;

import java.util.Date;

@Data
public class ParkingAbnormalBillListVO  {

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

    /**
     * 园区ID
     */
    @ApiModelProperty(name = "parkId", value = "园区ID")
    private Long parkId;
    /**
     * 园区名称
     */
    @ApiModelProperty(name = "parkName", value = "园区名称")
    private String parkName;
    private Date createTime;

    /**
     * 微信openid or 支付宝账号
     */
    @ApiModelProperty("微信openid or 支付宝账号")
    private String payUserId;
    /**
     * 停车库唯一标志
     */
    @ApiModelProperty("停车库唯一标志")
    private Long parkingId;
    /**
     * 停车库名称
     */
    @ApiModelProperty("停车库名称")
    private String parkingName;
    /**
     * 车牌
     */
    @ApiModelProperty("车牌")
    private String plateNo;
    /**
     * 车辆id，无牌车用无牌车id
     */
    @ApiModelProperty("车辆id，无牌车用无牌车id")
    private Long noPlateId;
    /**
     * 基本已经废弃，后期谨慎使用
     * 开票状态 | 0 开票中 1 开票成功 2 开票失败 3 红冲 4 被红冲 9 未开票
     */
    @Deprecated
    @ApiModelProperty("开票状态 | 0 开票中 1 开票成功 2 开票失败 3 红冲 4 被红冲 9 未开票")
    private Integer invoicingStatus;
    /**
     * 车辆类型:0-其他，1-小型车，2-大型车，3-摩托车
     */
    @ApiModelProperty("车辆类型:0-其他，1-小型车，2-大型车，3-摩托车")
    private Integer vehicleType;
    /**
     * 入场时间
     */
    @ApiModelProperty("入场时间")
    private Date enterTime;
    /**
     * 放行的理由
     */
    @ApiModelProperty("放行的理由")
    private String enterMsg;
    /**
     * 收费规则唯一标志，正常收费情况下有此信息
     */
    @ApiModelProperty("收费规则唯一标志，正常收费情况下有此信息")
    private Long chargeRuleId;
    /**
     * 收费规则名称
     */
    @ApiModelProperty("收费规则名称")
    private String chargeRuleName;
    /**
     * 入场免费时间 单位 分钟
     */
    @ApiModelProperty("入场免费时间 单位 分钟")
    private Long enterFreeTime;
    /**
     * 缴费后允许延时出场时间 单位：分钟
     */
    @ApiModelProperty("缴费后允许延时出场时间 单位：分钟")
    private Long delayTime;
    /**
     * 账单状态：0-未结清状态，1-已结算（已出停车场）  ----每一次变动添加一条记录
     */
    @ApiModelProperty("账单状态：0-未结清状态，1-已结算（已出停车场）  ----每一次变动添加一条记录")
    private Integer billStatus;
    /**
     * 账单类型：1-临停 2-月卡 3-无牌车，4-特殊车，5-节假日，6-群组,7-异常,10-团队车,11-车组,12-AB车位,13-团队车位,20-错时车
     */
    @ApiModelProperty("账单类型：1-临停 2-月卡 3-无牌车，4-特殊车，5-节假日，6-群组,7-异常-------放行规则提供")
    private Integer billType;
    /**
     * 缴费时间(统计停车时长)
     */
    @ApiModelProperty("缴费时间(统计停车时长)")
    private Date outTime;
    /**
     * 放行的理由
     */
    @ApiModelProperty("放行的理由")
    private String outMsg;
    /**
     * 停车时长 单位分钟
     */
    @ApiModelProperty("停车时长 单位分钟")
    private Long parkTime;
    /**
     * 应收金额（最大长度8） 单位：分
     */
    @ApiModelProperty("应收金额（最大长度8） 单位：分")
    private Long supposeCost;
    /**
     * 已支付金额（最大长度8） 单位：分
     */
    @ApiModelProperty("已支付金额（最大长度8） 单位：分")
    private Long paidCost;
    /**
     * 优惠减免金额（最大长度8） 单位：分
     */
    @ApiModelProperty("优惠减免金额（最大长度8） 单位：分")
    private Long discountCost;
    /**
     * 账单总金额（最大长度8） 单位：分
     */
    @ApiModelProperty("账单总金额（最大长度8） 单位：分")
    private Long totalCost;
    /**
     * 入场车辆图片uri
     */
    @ApiModelProperty("入场车辆图片uri")
    private String vehiclePicUri;
    /**
     * 入场车牌图片uri
     */
    @ApiModelProperty("入场车牌图片uri")
    private String plateNoPicUri;

    @ApiModelProperty("子账单类型")
    private Integer subBillType;

    @ApiModelProperty(value = "最新一条结算时间")
    private Date settleTime;

    @ApiModelProperty("异常类型(目前只存放了场中场地库异常出场,等)1存在异常出场")
    private Integer exceptionType;

    @ApiModelProperty(value = "异常产生时间(结合exceptionType使用)")
    private Date exceptionTime;

    @ApiModelProperty(value = "异常关联的父停车场id")
    private Long exceptionParentId;

    ////////////////////////////////////////////////  modify by qianjiang 支持占位费需求

    /**
     * 时间段内车辆在充电车位闲置占用所需支付的费用
     */
    @ApiModelProperty(value = "充电车位占用费用, 人民币单位：分")
    private Long placeIdleCost;

    /**
     * 时间段内车辆在充电车位上停放的总时长，根据多次入、离车位的时间计算所得
     */
    @ApiModelProperty(value = "充电车位占用总时长, 时间单位：秒")
    private Long placeParkingTime;

    /**
     * 时间段内车辆在充电车位上未充电的总时长，根据多次入、离车位的时间计算所得
     */
    @ApiModelProperty(value = "充电车位占用收费总时长, 时间单位：秒")
    private Long placeIdleTime;

    /**
     * 时间段内车辆在充电车位上处于充电状态的总时长，根据多次充电记录的时间计算所得
     */
    @ApiModelProperty(value = "充电车位充电时长, 时间单位：秒")
    private Long placeChargeTime;

    private long supposePlaceIdleCost;

    /**
     * 车道编号
     */
    @ApiModelProperty(value = "车道编号")
    private String roadwayId;

    /**
     * 车道名称
     */
    @ApiModelProperty(value = "车道名称")
    private String roadwayName;
}
