package com.simuwang.base.common.support.dos;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.simuwang.base.common.conts.Constants;
import com.simuwang.base.common.support.vo.BaseVO;
import lombok.Getter;
import lombok.Setter;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @author wangzaijun
 * @date 2023/11/7 17:23
 * @description base数据模型
 */
@Setter
@Getter
public abstract class BaseEntity<VO extends BaseVO> implements Serializable {
    @Serial
    private static final long serialVersionUID = Constants.DEFAULT_SERIAL_ID;
    /**
     * 创建人
     */
    @TableField(value = "creatorid", fill = FieldFill.INSERT)
    private Integer creatorId;
    /**
     * 创建时间
     */
    @TableField(value = "createtime", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 当前数据库对象转vo对象，尽量用属性复制的方法，少用反射
     *
     * @return /
     */
    public abstract VO toVo();
}
