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

import com.baomidou.mybatisplus.annotation.TableName;
import com.thinkunion.park.service.common.entity.BasicEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * @ClassName VehicleMonthlyCardData
 * @Description 停车场 车辆申请包期数据表
 * @Author 张逸飞
 * @Date 2022/6/16 15:50
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "停车场 车辆申请包期数据表", description = "停车场 车辆申请包期数据表")
@TableName("vehicle_monthly_card_data")
public class VehicleMonthlyCardData extends BasicEntity {


    /**
     * 移动端用户唯一ID
     */
    @ApiModelProperty(name = "payUserId", value = "移动端用户唯一ID")
    private String payUserId;

    /**
     * 企业ID
     */
    @ApiModelProperty(name = "companyId", value = "企业ID")
    private Long companyId;

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

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

    /**
     * 车主名称
     */
    @ApiModelProperty(name = "personName", value = "车主名称")
    private String personName;

    /**
     * 手机号
     */
    @ApiModelProperty(name = "personPhone", value = "手机号")
    private String personPhone;



    /**
     * 车辆类型（0：其他车、1：小型车、2：大型车、3：摩托车）
     */
    @ApiModelProperty(name = "vehicleType", value = "车辆类型（0：其他车、1：小型车、2：大型车、3：摩托车）")
    private Integer vehicleType;

    /**
     * 能源类型（0：其他类型、1：汽油车、2：新能源）
     */
    @ApiModelProperty(name = "energyType", value = "能源类型（0：其他类型、1：汽油车、2：新能源）")
    private Integer energyType;

    /**
     * 进入理由
     */
    @ApiModelProperty(name = "reason", value = "进入理由")
    private String reason;

    /**
     * 申请附件图片地址 逗号隔开
     */
    @ApiModelProperty(name = "file", value = "申请附件图片地址 逗号隔开")
    private String file;

    /**
     * 审核状态（0 待审核 1 进行中 2 已完成 3 已撤回 4 已拒绝））
     */
    @ApiModelProperty(name = "reviewState", value = "审核状态（0 待审核 1 进行中 2 已完成 3 已撤回 4 已拒绝）")
    private Integer reviewState;

    /**
     * 月卡状态（0 未缴费 1 正常使用 2 已过期 3用户主动取消）
     * 2023年1月11日11:09:10 需求 增加已失效
     * 使用状态：未生效、正常使用、待续费、已失效；
     *
     * “未生效”：需要审核需要缴费的，缴费之前的状态都为“未生效”；需要审核不需要缴费的，审核通过之后即生效(符合)；
     *
     * “正常使用”：生效之后，已缴费有效期间内的状态为：正常使用；
     *
     * “待续费”：月卡已生效，在月卡有效范围内，缴费的有效期间已结束之后，没有及时续费期间的状态；
     *
     * “已失效”：未生效的月卡，在审核通过7天内未缴费的状态自动改为已失效；已生效的月卡，缴费有效使用期间结束之后，超过7天未续费的，状态自动改为已失效；（当前月卡、错时卡创建时未设置有效范围）
     *
     */
    @ApiModelProperty(name = "activeState", value = "月卡状态（0 未缴费(免费未生效) 1 正常使用 2 已过期 3 已失效）")
    private Integer activeState;

    /**
     * 备注（拒绝理由：含有未结清账单）
     */
    @ApiModelProperty(name = "remark", value = "备注（拒绝理由：含有未结清账单）")
    private String remark;

    /**
     * 包期规则ID
     */
    @ApiModelProperty(name = "ruleId", value = "包期规则ID")
    private Long ruleId;

    /**
     * 包租 开始时间
     */
    @ApiModelProperty(name = "beginTime", value = "包租 开始时间")
    private Date beginTime;

    /**
     * 包租 结束时间
     */
    @ApiModelProperty(name = "endTime", value = "包租 结束时间")
    private Date endTime;

    /**
     * 免费状态 0 免费 1 不免费
     */
    @ApiModelProperty(name = "freeState", value = "免费状态 0 免费 1 不免费")
    private Integer freeState;

    @ApiModelProperty(name = "placeNo", value = "为车辆分配的车位号")
    private String placeNo;

    /**
     * 审批人姓名  2022年12月20日12:05:48 增加字段 reviewUserInfoId，reviewUserId 用来获取审核人，数据库中的reviewName可以废弃
     */
    @ApiModelProperty(name = "reviewName", value = "审批人姓名")
    private String reviewName;

    /**
     * 审核时间
     */
    @ApiModelProperty(name = "reviewTime", value = "审核时间")
    private Date reviewTime;

    @ApiModelProperty(name = "applySource", value = "申请来源0系统1用户,2后台导入（旧数据需要进行数据改动，否则默认系统")
    private Integer applySource;

    @ApiModelProperty(name = "reviewUserInfoId", value = "审核用户信息id,来自表nest_user_info")
    private Long reviewUserInfoId;

    @ApiModelProperty(name = "reviewUserId", value = "审核用户账号id,来自表nest_user")
    private Long reviewUserId;

    @ApiModelProperty("是否固定车位号:0否,1是")
    private Integer isConstSpaceNo;

    @ApiModelProperty(name = "ruApprovalDataId", value = "任务对应的业务数据表id")
    private String ruApprovalDataId;

    @ApiModelProperty(name = "createPhone", value = "c端申请人的手机号")
    private String createPhone;

    @ApiModelProperty(name = "placeId", value = "车位信息ID")
    private Long placeId;

    /**
     * 退卡时间
     */
    @ApiModelProperty(name = "refundCardTime", value = "退卡时间")
    private Date refundCardTime;

    /**
     * 退卡状态 1 未退卡 2 退卡中 3 退卡完成
     */
    @ApiModelProperty(name = "refundCardState", value = "退卡状态 1 未退卡 2 退卡中 3 退卡完成")
    private Integer refundCardState;

    /**
     * 移动端用户删除
     */
    @ApiModelProperty(name = "isUserDeleted", value = "0未删除 1删除")
    private Integer isUserDeleted;

    /**
     * 单据编码
     */
    @ApiModelProperty(name = "receiptCode", value = "单据编码")
    private String receiptCode;


}

