/*
 * This file is generated by jOOQ.
 */
package com.databasir.dao;


import com.databasir.dao.tables.DataSource;
import com.databasir.dao.tables.DataSourceProperty;
import com.databasir.dao.tables.DatabaseDocument;
import com.databasir.dao.tables.DatabaseDocumentHistory;
import com.databasir.dao.tables.DocumentRemark;
import com.databasir.dao.tables.Group;
import com.databasir.dao.tables.Login;
import com.databasir.dao.tables.Project;
import com.databasir.dao.tables.ProjectSyncRule;
import com.databasir.dao.tables.SysKey;
import com.databasir.dao.tables.SysMail;
import com.databasir.dao.tables.TableColumnDocument;
import com.databasir.dao.tables.TableDocument;
import com.databasir.dao.tables.TableIndexDocument;
import com.databasir.dao.tables.TableTriggerDocument;
import com.databasir.dao.tables.User;
import com.databasir.dao.tables.UserRole;

import java.util.Arrays;
import java.util.List;

import org.jooq.Catalog;
import org.jooq.Table;
import org.jooq.impl.SchemaImpl;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Databasir extends SchemaImpl {

    private static final long serialVersionUID = 1L;

    /**
     * The reference instance of <code>databasir</code>
     */
    public static final Databasir DATABASIR = new Databasir();

    /**
     * The table <code>databasir.data_source</code>.
     */
    public final DataSource DATA_SOURCE = DataSource.DATA_SOURCE;

    /**
     * The table <code>databasir.data_source_property</code>.
     */
    public final DataSourceProperty DATA_SOURCE_PROPERTY = DataSourceProperty.DATA_SOURCE_PROPERTY;

    /**
     * The table <code>databasir.database_document</code>.
     */
    public final DatabaseDocument DATABASE_DOCUMENT = DatabaseDocument.DATABASE_DOCUMENT;

    /**
     * The table <code>databasir.database_document_history</code>.
     */
    public final DatabaseDocumentHistory DATABASE_DOCUMENT_HISTORY = DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY;

    /**
     * The table <code>databasir.document_remark</code>.
     */
    public final DocumentRemark DOCUMENT_REMARK = DocumentRemark.DOCUMENT_REMARK;

    /**
     * The table <code>databasir.group</code>.
     */
    public final Group GROUP = Group.GROUP;

    /**
     * The table <code>databasir.login</code>.
     */
    public final Login LOGIN = Login.LOGIN;

    /**
     * The table <code>databasir.project</code>.
     */
    public final Project PROJECT = Project.PROJECT;

    /**
     * The table <code>databasir.project_sync_rule</code>.
     */
    public final ProjectSyncRule PROJECT_SYNC_RULE = ProjectSyncRule.PROJECT_SYNC_RULE;

    /**
     * The table <code>databasir.sys_key</code>.
     */
    public final SysKey SYS_KEY = SysKey.SYS_KEY;

    /**
     * The table <code>databasir.sys_mail</code>.
     */
    public final SysMail SYS_MAIL = SysMail.SYS_MAIL;

    /**
     * The table <code>databasir.table_column_document</code>.
     */
    public final TableColumnDocument TABLE_COLUMN_DOCUMENT = TableColumnDocument.TABLE_COLUMN_DOCUMENT;

    /**
     * The table <code>databasir.table_document</code>.
     */
    public final TableDocument TABLE_DOCUMENT = TableDocument.TABLE_DOCUMENT;

    /**
     * The table <code>databasir.table_index_document</code>.
     */
    public final TableIndexDocument TABLE_INDEX_DOCUMENT = TableIndexDocument.TABLE_INDEX_DOCUMENT;

    /**
     * The table <code>databasir.table_trigger_document</code>.
     */
    public final TableTriggerDocument TABLE_TRIGGER_DOCUMENT = TableTriggerDocument.TABLE_TRIGGER_DOCUMENT;

    /**
     * The table <code>databasir.user</code>.
     */
    public final User USER = User.USER;

    /**
     * The table <code>databasir.user_role</code>.
     */
    public final UserRole USER_ROLE = UserRole.USER_ROLE;

    /**
     * No further instances allowed
     */
    private Databasir() {
        super("databasir", null);
    }


    @Override
    public Catalog getCatalog() {
        return DefaultCatalog.DEFAULT_CATALOG;
    }

    @Override
    public final List<Table<?>> getTables() {
        return Arrays.asList(
            DataSource.DATA_SOURCE,
            DataSourceProperty.DATA_SOURCE_PROPERTY,
            DatabaseDocument.DATABASE_DOCUMENT,
            DatabaseDocumentHistory.DATABASE_DOCUMENT_HISTORY,
            DocumentRemark.DOCUMENT_REMARK,
            Group.GROUP,
            Login.LOGIN,
            Project.PROJECT,
            ProjectSyncRule.PROJECT_SYNC_RULE,
            SysKey.SYS_KEY,
            SysMail.SYS_MAIL,
            TableColumnDocument.TABLE_COLUMN_DOCUMENT,
            TableDocument.TABLE_DOCUMENT,
            TableIndexDocument.TABLE_INDEX_DOCUMENT,
            TableTriggerDocument.TABLE_TRIGGER_DOCUMENT,
            User.USER,
            UserRole.USER_ROLE
        );
    }
}
