package com.ruoyi.base.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 访客登记记录对象 robot_ops_visitor_record
 *
 * @author ruoyi
 * @date 2026-04-30
 */
public class RobotOpsVisitorRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 访客姓名 */
    @Excel(name = "访客姓名")
    private String visitorName;

    /** 访客手机号 */
    @Excel(name = "访客手机号")
    private String mobile;

    /** 证件号码 */
    @Excel(name = "证件号码")
    private String idCardNo;

    /** 到访类型 */
    @Excel(name = "到访类型")
    private String visitType;

    /** 访客来源，如公司、单位、亲友、外卖、快递、供应商等 */
    @Excel(name = "访客来源，如公司、单位、亲友、外卖、快递、供应商等")
    private String visitorSource;

    /** 来访事由，如业务接洽、走亲访友、酒店入住、配送、维修、参观等 */
    @Excel(name = "来访事由，如业务接洽、走亲访友、酒店入住、配送、维修、参观等")
    private String visitReason;

    /** 访客照片地址 */
    @Excel(name = "访客照片地址")
    private String visitorPhoto;

    /** 关联预约单号，现场登记可为空 */
    @Excel(name = "关联预约单号，现场登记可为空")
    private String appointmentNo;

    /** 被访人/被访对象 */
    @Excel(name = "被访人/被访对象")
    private String visitedPerson;

    /** 来访/登记时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "来访/登记时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date visitTime;

    /** 登记方式 */
    @Excel(name = "登记方式")
    private String registerType;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setVisitorName(String visitorName)
    {
        this.visitorName = visitorName;
    }

    public String getVisitorName()
    {
        return visitorName;
    }

    public void setMobile(String mobile)
    {
        this.mobile = mobile;
    }

    public String getMobile()
    {
        return mobile;
    }

    public void setIdCardNo(String idCardNo)
    {
        this.idCardNo = idCardNo;
    }

    public String getIdCardNo()
    {
        return idCardNo;
    }

    public void setVisitType(String visitType)
    {
        this.visitType = visitType;
    }

    public String getVisitType()
    {
        return visitType;
    }

    public void setVisitorSource(String visitorSource)
    {
        this.visitorSource = visitorSource;
    }

    public String getVisitorSource()
    {
        return visitorSource;
    }

    public void setVisitReason(String visitReason)
    {
        this.visitReason = visitReason;
    }

    public String getVisitReason()
    {
        return visitReason;
    }

    public void setVisitorPhoto(String visitorPhoto)
    {
        this.visitorPhoto = visitorPhoto;
    }

    public String getVisitorPhoto()
    {
        return visitorPhoto;
    }

    public void setAppointmentNo(String appointmentNo)
    {
        this.appointmentNo = appointmentNo;
    }

    public String getAppointmentNo()
    {
        return appointmentNo;
    }

    public void setVisitedPerson(String visitedPerson)
    {
        this.visitedPerson = visitedPerson;
    }

    public String getVisitedPerson()
    {
        return visitedPerson;
    }

    public void setVisitTime(Date visitTime)
    {
        this.visitTime = visitTime;
    }

    public Date getVisitTime()
    {
        return visitTime;
    }

    public void setRegisterType(String registerType)
    {
        this.registerType = registerType;
    }

    public String getRegisterType()
    {
        return registerType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("visitorName", getVisitorName())
                .append("mobile", getMobile())
                .append("idCardNo", getIdCardNo())
                .append("visitType", getVisitType())
                .append("visitorSource", getVisitorSource())
                .append("visitReason", getVisitReason())
                .append("visitorPhoto", getVisitorPhoto())
                .append("appointmentNo", getAppointmentNo())
                .append("visitedPerson", getVisitedPerson())
                .append("visitTime", getVisitTime())
                .append("remark", getRemark())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .append("registerType", getRegisterType())
                .toString();
    }
}
