package com.erp.tenant.entity.common;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

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

/**
 * 租户端基础实体类
 * 所有租户端实体继承此类，自动注入 tenant_id
 */
@Data
public abstract class BaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 租户ID（多租户隔离字段）
     */
    @TableField("tenant_id")
    protected Long tenantId;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    protected LocalDateTime createdAt;

    /**
     * 创建人ID
     */
    @TableField("created_by")
    protected Long createdBy;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    protected LocalDateTime updatedAt;

    /**
     * 更新人ID
     */
    @TableField("updated_by")
    protected Long updatedBy;

    /**
     * 删除时间（逻辑删除标记）
     */
    @TableLogic
    @TableField("deleted_at")
    protected LocalDateTime deletedAt;
}
