package com.changhu.support.mybatisplus.pojo.entity;

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

import java.time.LocalDateTime;

/**
 * author: luozhun
 * desc: 所有数据库表共有的属性
 * createTime: 2023/8/16 17:03
 */
@TableName
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class BaseEntity {

    /**
     * 业务id(雪花算法id)
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long snowFlakeId;

    /**
     * 创建人 自动填充
     */
    @TableField(fill = FieldFill.INSERT)
    private Long createBy;

    /**
     * 创建时间 自动填充
     */
    @TableField(fill = FieldFill.INSERT)
    @OrderBy(sort = 1)
    private LocalDateTime createTime;

    /**
     * 更新人 自动填充
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;

    /**
     * 更新时间 自动填充
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 逻辑删除(1是 0否)
     */
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer deleteFlag;
}
