package com.rj.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

@Data
@EqualsAndHashCode(callSuper = false)
@TableName("qwei_user")
@Schema(description = "企微用户表")
public class QweiUser implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    @Schema(description = "主键UUID")
    private String id;

    @TableField("tenant_id")
    @Schema(description = "租户ID(UUID)")
    private String tenantId;

    @TableField("userid")
    @Schema(description = "企微用户ID")
    private String userid;

    @TableField("user_name")
    @Schema(description = "姓名")
    private String userName;

    @TableField("mobile")
    @Schema(description = "手机号")
    private String mobile;

    @TableField("email")
    @Schema(description = "邮箱")
    private String email;

    @TableField("biz_email")
    @Schema(description = "企业邮箱")
    private String bizEmail;

    @TableField("telephone")
    @Schema(description = "座机")
    private String telephone;

    @TableField("position")
    @Schema(description = "职位")
    private String position;

    @TableField("gender")
    @Schema(description = "性别")
    private Integer gender;

    @TableField("status")
    @Schema(description = "激活状态")
    private Integer status;

    @TableField("main_department_id")
    @Schema(description = "主部门ID")
    private Long mainDepartmentId;

    @TableField("department_ids_json")
    @Schema(description = "所属部门ID列表(JSON)")
    private String departmentIdsJson;

    @TableField("alias_name")
    @Schema(description = "别名")
    private String aliasName;

    @TableField("avatar")
    @Schema(description = "头像URL")
    private String avatar;

    @TableField("thumb_avatar")
    @Schema(description = "头像缩略图URL")
    private String thumbAvatar;

    @TableField("address")
    @Schema(description = "地址")
    private String address;

    @TableField("is_deleted")
    @Schema(description = "是否删除(0否1是)")
    private Integer isDeleted;

    @TableField("created_at")
    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @TableField("updated_at")
    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}

