package com.sonic.bear.domain.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 用户实体类
 *
 * @author coder
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("user")
public class User {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID（至少15位）
     */
    @TableField("user_id")
    private Long userId;

    /**
     * ID编号
     */
    @TableField("id_card")
    private String idCard;

    /**
     * 头像
     */
    @TableField("head_image")
    private String headImage;

    /**
     * 昵称
     */
    @TableField("nickname")
    private String nickname;

    /**
     * 生日
     */
    @TableField("birthday")
    private LocalDateTime birthday;

    /**
     * 性别（0 男、1 女、2 未知）
     */
    @TableField("sex")
    private Integer sex;

    /**
     * 账户类型（1 客户、2 后台）
     */
    @TableField("account_type")
    private Integer accountType;

    /**
     * 账户状态（0 正常、1 禁用、2 锁定）
     */
    @TableField("account_status")
    private Integer accountStatus;

    /**
     * 最后访问时间
     */
    @TableField("last_access_time")
    private LocalDateTime lastAccessTime;

    /**
     * 是否删除（0 否、1 是）
     */
    @TableField("is_delete")
    private Boolean isDelete;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 编辑人
     */
    @TableField("edit_id")
    private Long editId;

    /**
     * 编辑时间
     */
    @TableField(value = "edit_time", update = "NOW()")
    private LocalDateTime editTime;
}
