package com.kingtom.shengtai.app.message.model.table;

import java.io.Serial;

import com.mybatisflex.core.query.QueryColumn;
import com.mybatisflex.core.table.TableDef;

/**
 * 消息接收记录表 表定义层。
 *
 * @author wany
 * @since 2023-12-27
 */
public class MsgReceiveTableDef extends TableDef {

    /**
     * 消息接收记录表
     */
    public static final MsgReceiveTableDef MSG_RECEIVE = new MsgReceiveTableDef();

    @Serial
    private static final long serialVersionUID = -3011010943831506346L;

    /**
     * 主键
     */
    public final QueryColumn ID = new QueryColumn(this, "id");

    /**
     * 扩展字段1
     */
    public final QueryColumn EXT1 = new QueryColumn(this, "ext1");

    /**
     * 扩展字段2
     */
    public final QueryColumn EXT2 = new QueryColumn(this, "ext2");

    /**
     * 扩展字段3
     */
    public final QueryColumn EXT3 = new QueryColumn(this, "ext3");

    /**
     * 消息Id
     */
    public final QueryColumn MSG_ID = new QueryColumn(this, "msg_id");

    /**
     * 系统ID
     */
    public final QueryColumn SYS_ID = new QueryColumn(this, "sys_id");

    /**
     * 阅读时间
     */
    public final QueryColumn READ_TIME = new QueryColumn(this, "read_time");

    /**
     * 接收人
     */
    public final QueryColumn RECEIVER = new QueryColumn(this, "receiver");

    /**
     * 创建时间
     */
    public final QueryColumn GMT_CREATE = new QueryColumn(this, "gmt_create");

    /**
     * 阅读状态
     */
    public final QueryColumn READ_STATE = new QueryColumn(this, "read_state");

    /**
     * 更新时间
     */
    public final QueryColumn GMT_MODIFIED = new QueryColumn(this, "gmt_modified");

    /**
     * 接收时间
     */
    public final QueryColumn RECEIVE_TIME = new QueryColumn(this, "receive_time");

    /**
     * 接收状态
     */
    public final QueryColumn RECEIVE_STATE = new QueryColumn(this, "receive_state");

    /**
     * 所有字段。
     */
    public final QueryColumn ALL_COLUMNS = new QueryColumn(this, "*");

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DEFAULT_COLUMNS = new QueryColumn[]{ID, MSG_ID, RECEIVER, RECEIVE_STATE, RECEIVE_TIME, READ_STATE, READ_TIME, EXT1, EXT2, EXT3, GMT_CREATE, GMT_MODIFIED, SYS_ID};

    public MsgReceiveTableDef() {
        super("public", "msg_receive");
    }

}
