package com.yuchen.saas.manage.system.api.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import java.util.Date;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nest.springwrap.core.tenant.mp.TenantEntity;

/**
 * <p>
 * 用户加入(被邀请进)组织申请记录表
 * </p>
 *
 * @author author
 * @since 2023-03-22
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("nest_org_user_apply")
public class NestOrgUserApply extends TenantEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 真实姓名
     */
    private String name;

    /**
     * (被邀请,申请)用户id
     */
    private Long toUserId;

    /**
     * 组织id
     */
    private Long deptId;



    /**
     * 组织操作人userId
     */
    private Long userId;

    /**
     * 组织操作人orgUserId
     */
    private Long orgUserId;

    /**
     * 理由
     */
    private String reason;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 申请方式:0申请,1邀请,2组织申请时生成(主动申请组织时附加一条记录-小程序加入记录模块中要用到)
     */
    private Integer type;

    /**
     * 审核状态（0 待审核 1 进行中 2 已完成 3 已撤回 4 已拒绝））
     */
    private Integer reviewState;

    /**
     * 审核时间
     */
    private Date reviewTime;

    /**
     * 申请时间
     */
    private Date applyTime;

    /**
     * 部门id
     */
    private Long childDeptId;

    @ApiModelProperty(name = "inviteCode", value = "邀请码")
    private String inviteCode;

    @ApiModelProperty(name = "inviteCode", value = "邀请码创建人名称")
    private String inviteCodeCreateName;


    @ApiModelProperty(name = "orgUserType", value = "类型:0内部成员,1外部成员")
    private Integer orgUserType;

    @ApiModelProperty(value = "来源组织id(外部成员来源组织id可能也会为空)")
    private Long sourceDeptId;

    @ApiModelProperty(value = "来源组织名称")
    private String sourceDeptName;

    @ApiModelProperty(value = "来源组织成员id(外部成员来源组织成员id可能也会为空)")
    private Long sourceOrgUserId;

    @ApiModelProperty(name = "isShowName", value = "外部组织名称(可以直接输名称,不存在组织id)")
    private Integer isShowName;

    @ApiModelProperty(name = "isShowEmail", value = "是否展示邮箱(外部组织0不展示,1展示)")
    private Integer isShowEmail;

    @ApiModelProperty(name = "isShowPhone", value = "是否展示手机号(外部组织0不展示,1展示)")
    private Integer isShowPhone;

    @ApiModelProperty(name = "isShowDept", value = "是否展示部门(外部组织0不展示,1展示)")
    private Integer isShowDept;

    @ApiModelProperty(name = "isShowPosition", value = "是否展示职位(外部组织0不展示,1展示)")
    private Integer isShowPosition;
}
