package com.huiju.estateagents.entity;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.huiju.estateagents.center.taUser.entity.TaUser;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 推荐客户表
 * </p>
 *
 * @author jobob
 * @since 2019-05-10
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class TaRecommendCustomer implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 客户ID
     */
    @TableId(value = "customer_id", type = IdType.UUID)
    private String customerId;

    /**
     * 姓名
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 性别
     */
    private Integer sex;

    /**
     * 电话
     */
    private String phone;

    /**
     * 照片
     */
    private String picture;

    /**
     * 描述
     */
    @TableField(value = "`describe`")
    private String describe;

    /**
     * 预约时间
     */
    private LocalDateTime appointmentTime;

    /**
     * 到访人数
     */
    private Integer visiteNum;

    /**
     * 意向项目
     */
    @ExcelProperty(value = "意向项目", index = 3)
    private String intention;

    /**
     * 项目ID
     */
    private String buildingId;

    /**
     * 物业类型
     */
    private String realtyManageType;

    /**
     * 需求类型
     */
    private String demandType;

    /**
     * 价格区间
     */
    private String priceRange;

    /**
     * 报备日期
     */
    private LocalDateTime reportDate;

    /**
     * 状态
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 推荐人
     */
    private String recommendPerson;

    private String personId;

    /**
     * 服务顾问
     */
    private String realtyConsultant;

    /**
     * 服务顾问
     */
    @TableField(exist = false)
    private Map<String, Object> consultants;

    @TableField(exist = false)
    private String consultantName;

    @TableField(exist = false)
    private String consultTel;

    private Integer verifyStatus;

    private String verifyRemark;

    private String country;

    private String province;

    private String city;

    private String entryType;

    private LocalDateTime arrivalDate;

    private LocalDateTime verifyDate;

    @DateTimeFormat("yyyy年MM月dd日")
    private LocalDateTime createDate;

    private Integer reportRecommendStatus;

    private Integer orgId;

    @TableField(exist = false)
    private IPage<TaPersonVisitRecord> visitRecords;

    @TableField(exist = false)
    private List<String> projects;

    @TableField(exist = false)
    private Integer duration;

    @TableField(exist = false)
    private LocalDateTime visitTime;

    @TableField(exist = false)
    private Integer visitTimes;

    @TableField(exist = false)
    private TaUser consultant;

    @TableField(exist = false)
    private String recommendName;

    @TableField(exist = false)
    private String recommendTel;

    @TableField(exist = false)
    private List<PersonIntention> intentions;
    
    @TableField(exist = false)
    private String intentionName;


    /**
     * 推广人
     */
    @TableField(exist = false)
    private String sharePersonName;

    @TableField(exist = false)
    private Map<String,String> geoInfo;

    @TableField(exist = false)
    private String avatarurl;

    /**
     * 所属项目
     */
    @TableField(exist = false)
    private String buildingName;

    /**
     * 来源类型
     */
    @TableField(exist = false)
    private String personFrom;

    /**
     * 迁移人的名称
     */
    @TableField(exist = false)
    private String moveUserName;

    /**
     * 迁移人的userId
     */
    @TableField(exist = false)
    private String moveUserId;
}
