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

import java.io.Serial;

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

/**
 * 供应商信息表 表定义层。
 *
 * @author wany
 * @since 2023-12-21
 */
public class SrmSupplierTableDef extends TableDef{

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

    /**
     * 供应商信息表
     */
    public static final SrmSupplierTableDef SRM_SUPPLIER = new SrmSupplierTableDef();

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

    /**
     * 企业营业执照
     */
    public final QueryColumn BUSINESS_LICENSE = new QueryColumn(this, "business_license");

    /**
     * 国家权威认证机构颁发的证书
     */
    public final QueryColumn CERTIFICATES = new QueryColumn(this, "certificates");

    /**
     * 扩展字段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");

    /**
     * 评分
     */
    public final QueryColumn MARK = new QueryColumn(this, "mark");

    /**
     * 名称
     */
    public final QueryColumn NAME = new QueryColumn(this, "name");

    /**
     * 供应商类型
     */
    public final QueryColumn TYPE = new QueryColumn(this, "type");

    /**
     * 图片集合
     */
    public final QueryColumn IMAGE = new QueryColumn(this, "image");

    /**
     * 企业简介
     */
    public final QueryColumn INTRO = new QueryColumn(this, "intro");

    /**
     * 联系电话
     */
    public final QueryColumn PHONE = new QueryColumn(this, "phone");

    /**
     * 供应商状态
     */
    public final QueryColumn STATE = new QueryColumn(this, "state");

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

    /**
     * 联系人
     */
    public final QueryColumn PERSON = new QueryColumn(this, "person");

    /**
     * 备注
     */
    public final QueryColumn REMARK = new QueryColumn(this, "remark");

    /**
     * 联系地址
     */
    public final QueryColumn ADDRESS = new QueryColumn(this, "address");

    /**
     * 产品集合
     */
    public final QueryColumn PRODUCT = new QueryColumn(this, "product");

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

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

    /**
     * 优势产品
     */
    public final QueryColumn SUPERIOR_PRODUCT = new QueryColumn(this, "superior_product");

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

    /**
     * 默认字段，不包含逻辑删除或者 large 等字段。
     */
    public final QueryColumn[] DEFAULT_COLUMNS =
            new QueryColumn[]{ID, NAME, PERSON, PHONE, ADDRESS, TYPE, MARK, REMARK, IMAGE, PRODUCT, STATE, EXT1, EXT2,
                    EXT3, GMT_CREATE, GMT_MODIFIED, SYS_ID, INTRO, BUSINESS_LICENSE, CERTIFICATES, SUPERIOR_PRODUCT};

    public SrmSupplierTableDef(){
        super("public", "srm_supplier");
    }

}
