package com.sqx.modules.resumes.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sqx.modules.app.entity.UserEntity;
import com.sqx.modules.firstLogin.entity.HrEntity;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @author fang
 * @description post_push
 * @date 2022-08-03
 */
@Data
public class PostPush implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 招聘id
     */
    @TableId(value = "post_push_id", type = IdType.AUTO)
    @Excel(name = "编号", orderNum = "1")
    private Long postPushId;

    /**
     * 岗位名称
     */
    @Excel(name = "岗位名称", orderNum = "3")
    private String ruleClassifyName;
    /**
     * 职位名称
     */
    @Excel(name = "岗位名称", orderNum = "4")
    private String stationName;

    /**
     * 详细地址
     */
    @Excel(name = "详细地址", orderNum = "17")
    private String address;

    /**
     * 岗位id类型
     */
    private Long ruleClassifyId;

    /**
     * 邮箱
     */
    private String email;
    /**
     * 薪资范围
     */
    @Excel(name = "薪资范围", orderNum = "7")
    private String salaryRange;

    /**
     * 状态 1待审核 2审核通过 3审核不通过 4已取消 5已关闭
     */
    @Excel(name = "状态", replace = {"待审核_1", "审核通过_2", "审核不通过_3", "已取消_4", "已关闭_5"}, orderNum = "20")
    private Integer status;

    /**
     * 审核内容
     */
    private String auditContent;

    /**
     * 支付金额
     */
    private BigDecimal payMoney;
    /**
     * 公司id
     */
    private Long companyId;

    /**
     * 创建时间
     */
    @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss", orderNum = "18")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 1不推荐 2推荐
     */
    @Excel(name = "是否推荐", replace = {"否_1", "是_2","''_null"}, orderNum = "19")
    private Integer isRecommend;

    /**
     * 更新时间
     */
    private String updateTime;

    /**
     * 职位详情
     */
    @Excel(name = "职位详情", orderNum = "6")
    private String positionDetails;
    /**
     * 是否置顶
     */
    private Integer isTop;
    /**
     * 学历
     */
    @Excel(name = "学历", orderNum = "8")
    private String education;
    /**
     * 经验
     */
    @Excel(name = "学历", orderNum = "9")
    private String experience;
    /**
     * 招聘类型(字典)
     */
    @Excel(name = "招聘类型", orderNum = "11")
    private String postType;
    /**
     * 行业
     */
    @Excel(name = "行业", orderNum = "10")
    private String industry;
    /**
     * 职位福利
     */
    @Excel(name = "职位福利", orderNum = "13")
    private String positionWelfare;
    /**
     * 标签
     */
    @Excel(name = "标签", orderNum = "12")
    private String tag;
    /**
     * 省
     */
    @Excel(name = "省", orderNum = "14")
    private String province;
    /**
     * 市
     */
    @Excel(name = "市", orderNum = "15")
    private String city;
    /**
     * 省首字母
     */
    private String cityInitial;
    /**
     * 县
     */
    @Excel(name = "区/县", orderNum = "16")
    private String county;
    /**
     * 经度
     */
    private Double lng;
    /**
     * 纬度
     */
    private Double lat;
    /**
     * 行业id
     */
    private Long industryId;
    /**
     * 行业上级id
     */
    private Long industryOneId;
    /**
     * 岗位一级
     */
    private Long classifyOneId;
    /**
     * 岗位二级id
     */
    private Long classifyTwoId;
    /**
     * 过期时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime overdueTime;

    /**
     * 是否已过期 0未过期 1已过期
     */
    private Integer isOverdue;

    @TableField(exist = false)
    private String distance;

    @TableField(exist = false)
    @Excel(name = "姓名", orderNum = "2")
    private String userName;

    @TableField(exist = false)
    private String phone;

    @Excel(name = "企业名称", orderNum = "5")
    @TableField(exist = false)
    private String companyName;

    private String userId;

    @TableField(exist = false)
    private Integer isCollection;

    @TableField(exist = false)
    private String companyPeople;

    @TableField(exist = false)
    private Company company;

    @TableField(exist = false)
    private UserEntity user;

    @TableField(exist = false)
    private HrEntity hr;

    @TableField(exist = false)
    private Integer counts;

    @TableField(exist = false)
    private Integer num;

    private Integer isDue;
    private String  welfareTag;
    private Integer type;
    private String salaryTimes;
    private Integer orderId;

    public PostPush() {
    }
}