/*
 * This file is generated by jOOQ.
 */
package jj.tech.paolu.repository.jooq.tables;


import java.util.function.Function;

import jj.tech.paolu.repository.jooq.Keys;
import jj.tech.paolu.repository.jooq.Yx;
import jj.tech.paolu.repository.jooq.tables.records.Idc9998AdminInfoRecord;

import org.jooq.Field;
import org.jooq.ForeignKey;
import org.jooq.Function16;
import org.jooq.Name;
import org.jooq.Record;
import org.jooq.Records;
import org.jooq.Row16;
import org.jooq.Schema;
import org.jooq.SelectField;
import org.jooq.Table;
import org.jooq.TableField;
import org.jooq.TableOptions;
import org.jooq.UniqueKey;
import org.jooq.impl.DSL;
import org.jooq.impl.SQLDataType;
import org.jooq.impl.TableImpl;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
public class Idc9998AdminInfo extends TableImpl<Idc9998AdminInfoRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * The reference instance of <code>yx.idc9998_admin_info</code>
     */
    public static final Idc9998AdminInfo IDC9998_ADMIN_INFO = new Idc9998AdminInfo();

    /**
     * The class holding records for this type
     */
    @Override
    public Class<Idc9998AdminInfoRecord> getRecordType() {
        return Idc9998AdminInfoRecord.class;
    }

    /**
     * The column <code>yx.idc9998_admin_info.id</code>.
     */
    public final TableField<Idc9998AdminInfoRecord, String> ID = createField(DSL.name("id"), SQLDataType.VARCHAR(20).nullable(false), this, "");

    /**
     * The column <code>yx.idc9998_admin_info.status</code>. 1启用,0禁用
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> STATUS = createField(DSL.name("status"), SQLDataType.INTEGER.defaultValue(DSL.field(DSL.raw("1"), SQLDataType.INTEGER)), this, "1启用,0禁用");

    /**
     * The column <code>yx.idc9998_admin_info.manager_name</code>. 采集管理员账号
     */
    public final TableField<Idc9998AdminInfoRecord, String> MANAGER_NAME = createField(DSL.name("manager_name"), SQLDataType.VARCHAR(30).nullable(false), this, "采集管理员账号");

    /**
     * The column <code>yx.idc9998_admin_info.member_name</code>. 采集会员账号
     */
    public final TableField<Idc9998AdminInfoRecord, String> MEMBER_NAME = createField(DSL.name("member_name"), SQLDataType.VARCHAR(30).defaultValue(DSL.field(DSL.raw("NULL"), SQLDataType.VARCHAR)), this, "采集会员账号");

    /**
     * The column <code>yx.idc9998_admin_info.user_name</code>. 采集用户账号
     */
    public final TableField<Idc9998AdminInfoRecord, String> USER_NAME = createField(DSL.name("user_name"), SQLDataType.VARCHAR(30).nullable(false), this, "采集用户账号");

    /**
     * The column <code>yx.idc9998_admin_info.user_password</code>. 采集用户密码
     */
    public final TableField<Idc9998AdminInfoRecord, String> USER_PASSWORD = createField(DSL.name("user_password"), SQLDataType.VARCHAR(30).nullable(false), this, "采集用户密码");

    /**
     * The column <code>yx.idc9998_admin_info.domain</code>. 网站域名或者IP,无须/
     */
    public final TableField<Idc9998AdminInfoRecord, String> DOMAIN = createField(DSL.name("domain"), SQLDataType.VARCHAR(100).nullable(false), this, "网站域名或者IP,无须/");

    /**
     * The column <code>yx.idc9998_admin_info.is_default</code>. 是否默认为默认采集号
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> IS_DEFAULT = createField(DSL.name("is_default"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "是否默认为默认采集号");

    /**
     * The column <code>yx.idc9998_admin_info.is_online</code>. 1在线,0掉线
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> IS_ONLINE = createField(DSL.name("is_online"), SQLDataType.INTEGER.defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "1在线,0掉线");

    /**
     * The column <code>yx.idc9998_admin_info.login_info</code>. 最后一次登录cookie信息
     */
    public final TableField<Idc9998AdminInfoRecord, String> LOGIN_INFO = createField(DSL.name("login_info"), SQLDataType.VARCHAR(5000).defaultValue(DSL.field(DSL.raw("NULL"), SQLDataType.VARCHAR)), this, "最后一次登录cookie信息");

    /**
     * The column <code>yx.idc9998_admin_info.g_24</code>. 幸运飞艇
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> G_24 = createField(DSL.name("g_24"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "幸运飞艇");

    /**
     * The column <code>yx.idc9998_admin_info.g_29</code>. 极速时时彩
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> G_29 = createField(DSL.name("g_29"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "极速时时彩");

    /**
     * The column <code>yx.idc9998_admin_info.g_30</code>. 极速赛车
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> G_30 = createField(DSL.name("g_30"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "极速赛车");

    /**
     * The column <code>yx.idc9998_admin_info.g_31</code>. 极速飞艇
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> G_31 = createField(DSL.name("g_31"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "极速飞艇");

    /**
     * The column <code>yx.idc9998_admin_info.g_35</code>. 澳洲幸运5
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> G_35 = createField(DSL.name("g_35"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "澳洲幸运5");

    /**
     * The column <code>yx.idc9998_admin_info.g_37</code>. 澳洲幸运10
     */
    public final TableField<Idc9998AdminInfoRecord, Integer> G_37 = createField(DSL.name("g_37"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "澳洲幸运10");

    private Idc9998AdminInfo(Name alias, Table<Idc9998AdminInfoRecord> aliased) {
        this(alias, aliased, null);
    }

    private Idc9998AdminInfo(Name alias, Table<Idc9998AdminInfoRecord> aliased, Field<?>[] parameters) {
        super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table());
    }

    /**
     * Create an aliased <code>yx.idc9998_admin_info</code> table reference
     */
    public Idc9998AdminInfo(String alias) {
        this(DSL.name(alias), IDC9998_ADMIN_INFO);
    }

    /**
     * Create an aliased <code>yx.idc9998_admin_info</code> table reference
     */
    public Idc9998AdminInfo(Name alias) {
        this(alias, IDC9998_ADMIN_INFO);
    }

    /**
     * Create a <code>yx.idc9998_admin_info</code> table reference
     */
    public Idc9998AdminInfo() {
        this(DSL.name("idc9998_admin_info"), null);
    }

    public <O extends Record> Idc9998AdminInfo(Table<O> child, ForeignKey<O, Idc9998AdminInfoRecord> key) {
        super(child, key, IDC9998_ADMIN_INFO);
    }

    @Override
    public Schema getSchema() {
        return aliased() ? null : Yx.YX;
    }

    @Override
    public UniqueKey<Idc9998AdminInfoRecord> getPrimaryKey() {
        return Keys.KEY_IDC9998_ADMIN_INFO_PRIMARY;
    }

    @Override
    public Idc9998AdminInfo as(String alias) {
        return new Idc9998AdminInfo(DSL.name(alias), this);
    }

    @Override
    public Idc9998AdminInfo as(Name alias) {
        return new Idc9998AdminInfo(alias, this);
    }

    @Override
    public Idc9998AdminInfo as(Table<?> alias) {
        return new Idc9998AdminInfo(alias.getQualifiedName(), this);
    }

    /**
     * Rename this table
     */
    @Override
    public Idc9998AdminInfo rename(String name) {
        return new Idc9998AdminInfo(DSL.name(name), null);
    }

    /**
     * Rename this table
     */
    @Override
    public Idc9998AdminInfo rename(Name name) {
        return new Idc9998AdminInfo(name, null);
    }

    /**
     * Rename this table
     */
    @Override
    public Idc9998AdminInfo rename(Table<?> name) {
        return new Idc9998AdminInfo(name.getQualifiedName(), null);
    }

    // -------------------------------------------------------------------------
    // Row16 type methods
    // -------------------------------------------------------------------------

    @Override
    public Row16<String, Integer, String, String, String, String, String, Integer, Integer, String, Integer, Integer, Integer, Integer, Integer, Integer> fieldsRow() {
        return (Row16) super.fieldsRow();
    }

    /**
     * Convenience mapping calling {@link SelectField#convertFrom(Function)}.
     */
    public <U> SelectField<U> mapping(Function16<? super String, ? super Integer, ? super String, ? super String, ? super String, ? super String, ? super String, ? super Integer, ? super Integer, ? super String, ? super Integer, ? super Integer, ? super Integer, ? super Integer, ? super Integer, ? super Integer, ? extends U> from) {
        return convertFrom(Records.mapping(from));
    }

    /**
     * Convenience mapping calling {@link SelectField#convertFrom(Class,
     * Function)}.
     */
    public <U> SelectField<U> mapping(Class<U> toType, Function16<? super String, ? super Integer, ? super String, ? super String, ? super String, ? super String, ? super String, ? super Integer, ? super Integer, ? super String, ? super Integer, ? super Integer, ? super Integer, ? super Integer, ? super Integer, ? super Integer, ? extends U> from) {
        return convertFrom(toType, Records.mapping(from));
    }
}
