package com.yuchen.saas.park.api.entity.pldoor;

import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

import javax.validation.constraints.NotNull;
import java.util.Date;

/**
 * <p>
 * 保利访客信息表
 * </p>
 *
 * @author miaoqs
 * @since 2024-04-18
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("pl_visitor_info")
@ApiModel(value="PlVisitorInfo对象", description="保利访客信息表")
public class PlVisitorInfo extends TenantEntity {

    /**
     * 被访者名称
     */
    @ApiModelProperty(name = "intervieweeName", value = "被访者名称")
    private String intervieweeName;
    /**
     * 被访者手机号
     */
    @NotNull(message = "被访者手机号不能为空")
    @ApiModelProperty(name = "intervieweePhone", value = "被访者手机号")
    private String intervieweePhone;
    /**
     * 预约拜访开始时间
     */
    @ApiModelProperty(name = "startTime", value = "预约拜访开始时间")
    private Date startTime;
    /**
     * 预约拜访结束时间
     */
    @ApiModelProperty(name = "endTime", value = "预约拜访结束时间")
    private Date endTime;
    /**
     * 生效开始时间
     */
    @ApiModelProperty(name = "effectiveStartTime", value = "生效开始时间")
    private Date effectiveStartTime;
    /**
     * 生效结束时间
     */
    @ApiModelProperty(name = "effectiveEndTime", value = "生效结束时间")
    private Date effectiveEndTime;
    /**
     * 拜访事项
     */
    @ApiModelProperty(name = "visitMatter", value = "拜访事项")
    private String visitMatter;
    /**
     * 同行人数
     */
    @ApiModelProperty(name = "visitorNum", value = "同行人数")
    private Integer visitorNum;
    /**
     * 到访时间
     */
    @ApiModelProperty(name = "arriveTime", value = "到访时间")
    private Date arriveTime;
    /**
     * 预约时间
     */
    @ApiModelProperty(name = "appointmentTime", value = "预约时间")
    private Date appointmentTime;
    /**
     * 取消时间
     */
    @ApiModelProperty(name = "cancelTime", value = "取消时间")
    private Date cancelTime;
    /**
     * 可用车位
     */
    @ApiModelProperty(name = "carportNo", value = "可用车位")
    private String carportNo;
    /**
     * 到访状态 1.待确认;2.已拒绝;3.未到访;4.正在拜访;5.逾期失效;6.已过期;7.已取消
     */
    @ApiModelProperty(name = "visitorState", value = "到访状态 1.待确认;2.已拒绝;3.未到访;4.正在拜访;5.逾期失效;6.已过期;7.已取消")
    private String visitorState;
    /**
     * 平台用户id
     */
    @ApiModelProperty(name = "userDetailId", value = "平台用户id")
    private Long userDetailId;
    /**
     * 微信公众号openId
     */
    @ApiModelProperty(name = "userPayId", value = "微信公众号openId")
    private String userPayId;
    /**
     * 备注信息
     */
    @ApiModelProperty(name = "remark", value = "备注信息")
    private String remark;
    /**
     * 权限状态 1:待下发;2:未生效;3:生效中;4:已失效
     */
    @ApiModelProperty(name = "powerState", value = "权限状态 1:待下发;2:未生效;3:生效中;4:已失效;5:无需下发;")
    private String powerState;
    /**
     * 预约方式 1:主动邀约;2:访客预约
     */
    @ApiModelProperty(name = "appointmentType", value = "预约方式 1:主动邀约;2:访客预约")
    private String appointmentType;
    /**
     * 发送失败原因
     */
    @ApiModelProperty(name = "sendFailMsg", value = "发送失败原因")
    private String sendFailMsg;

    /**
     *  项目
     */
    @ApiModelProperty(name = "parkId", value = "项目")
    private Long parkId;

    /**
     *  单元
     */
    @ApiModelProperty(name = "elementId", value = "单元")
    private Long elementId;

    /**
     *  楼栋
     */
    @ApiModelProperty(name = "buildingId", value = "楼栋")
    private Long buildingId;

    /**
     *  楼层
     */
    @ApiModelProperty(name = "floorId", value = "楼层")
    private Long floorId;

    /**
     *  房号
     */
    @ApiModelProperty(name = "roomId", value = "房号")
    private Long roomId;

}
