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

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;
import java.util.List;

/**
 * @ClassName ParkingSharePlace
 * @Description 停车场 AB车位申请表（共享车位）
 * @Author 林立超
 * @Date 2023年5月18日
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "AB车位申请表", description = "AB车位申请表")
public class ParkingSharePlaceAuditVo extends BasicEntity {

    /**
     * 停车场ID
     */
    @ApiModelProperty(name = "parkName", value = "园区名称")
    private String parkName;

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

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

    /**
     * 车主电话
     */
    @ApiModelProperty(name = "vicePersonPhone", value = "副车主电话")
    private String vicePersonPhone;

    /**
     * 车主姓名
     */
    @ApiModelProperty(name = "vicePersonName", value = "副车主姓名")
    private String vicePersonName;

    /**
     * 车主电话
     */
    @ApiModelProperty(name = "personPhone", value = "车主电话")
    private String personPhone;


    /**
     * 共享类型（1：不限时间、2：指定期间）
     */
    @ApiModelProperty(name = "shareType", value = "共享类型（1：不限时间、2：指定期间）")
    private Integer shareType;

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

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

    /**
     * 共享状态（1：未生效，2：生肖中，3：已失效）
     */
    @ApiModelProperty(name = "shareStatus", value = "共享状态（1：未生效，2：生肖中，3：已失效）")
    private Integer shareStatus;

    /**
     * 月卡登记ID
     */
    @ApiModelProperty(name = "vehicleMonthlyCardId", value = "月卡ID")
    private Long vehicleMonthlyCardId;
    /**
     * 规则类型(1月卡 2错时)
     */
    @ApiModelProperty(name = "ruleType", value = "规则类型(1月卡 2错时)")
    private Integer ruleType;

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

    /**
     * 车牌号（逗号隔开）
     */
    @ApiModelProperty(name = "plateNos", value = "主车牌号")
    private String plateNo;


    /**
     * 车牌号（逗号隔开）
     */
    @ApiModelProperty(name = "vicePlateNo", value = "副车牌号")
    private String vicePlateNo;
    /**
     * AB车组描述
     */
    @ApiModelProperty(name = "remark", value = "AB车组描述")
    private String remark;

    /**
     * 申请附件图片地址 逗号隔开
     */
    @ApiModelProperty(name = "auditUser", value = "审核人")
    private String auditUser;
    @ApiModelProperty(name = "auditUserName", value = "审核人姓名")
    private String auditUserName;
    @ApiModelProperty(name = "auditMsg", value = "审核备注")
    private String auditMsg;
    @ApiModelProperty(name = "ruApprovalDataId", value = "审核流程ID")
    private String ruApprovalDataId;
    @ApiModelProperty(name = "auditState", value = "审核状态 0 拒绝 1 审核通过 2 进行中 3 取消 4 待审核")
    private String auditState;
    @ApiModelProperty(name = "auditTime", value = "审核时间")
    private Date auditTime;
    @ApiModelProperty(name = "applyTime", value = "申请时间")
    private Date applyTime;
    @ApiModelProperty(name = "applySource", value = "申请来源")
    private String applySource;
    @ApiModelProperty(name = "applyUser", value = "申请人")
    private String applyUser;
    @ApiModelProperty(name = "monthCarFreeState", value = "免费状态 0 免费 1 收费")
    private String monthCarFreeState;
    @ApiModelProperty(name = "monthCarBeginTime", value = "月卡开始时间")
    private Date monthCarBeginTime;

    @ApiModelProperty(name = "monthCarEndTime", value = "月卡结束时间")
    private Date monthCarEndTime;

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

    @ApiModelProperty(name = "file", value = "附件申请")
    private String file;

    @ApiModelProperty(name = "payUserId", value = "小程序OPENid")
    private String payUserId;
    @ApiModelProperty(name = "hasMonthCard", value = "是否有月卡")
    private String hasMonthCard;
    @ApiModelProperty(name = "MonthCardName", value = "月卡名称")
    private String MonthCardName;
    @ApiModelProperty(name = "ruTaskId", value = "任务ID")
    private String ruTaskId;
    @ApiModelProperty(name = "parkingId", value = "停车场ID")
    private String parkingId;
    @ApiModelProperty(name = "companyId", value = "公司ID")
    private String companyId;
    @ApiModelProperty(name = "palceId", value = "车位ID")
    private Long placeId;




    @ApiModelProperty(value = "流程节点集")
    private List<ProcessDetail> processDetail;

    @Data
    public static class ProcessDetail {
        @ApiModelProperty(value = "流程节点名称")
        private String text;

        @ApiModelProperty(value = "流程节点时间")
        private Date createTime;

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

        @ApiModelProperty(value = "消息(理由)")
        private String message;

        @ApiModelProperty(value = "除message外的表单数据")
        private String fromData;


        @ApiModelProperty(value = "审核人")
        private String userName;
    }



}
