/*
 * This file is generated by jOOQ.
 */
package ervu_dashboard.ervu_dashboard.db_beans.security;


import ervu_dashboard.ervu_dashboard.db_beans.DefaultCatalog;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.AccessLevel;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.Authority;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.EsiaUser;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserAccountUserGroup;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserGroupUserRole;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.LinkUserRoleAuthority;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.OrgUnit;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccount;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserAccountRefreshToken;
import ervu_dashboard.ervu_dashboard.db_beans.security.tables.UserGroup;
import ervu_dashboard.ervu_dashboard.db_beans.security.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 Security extends SchemaImpl {

    private static final long serialVersionUID = 1L;

    /**
     * The reference instance of <code>security</code>
     */
    public static final Security SECURITY = new Security();

    /**
     * The table <code>security.access_level</code>.
     */
    public final AccessLevel ACCESS_LEVEL = AccessLevel.ACCESS_LEVEL;

    /**
     * The table <code>security.authority</code>.
     */
    public final Authority AUTHORITY = Authority.AUTHORITY;

    /**
     * The table <code>security.esia_user</code>.
     */
    public final EsiaUser ESIA_USER = EsiaUser.ESIA_USER;

    /**
     * The table <code>security.link_user_account_user_group</code>.
     */
    public final LinkUserAccountUserGroup LINK_USER_ACCOUNT_USER_GROUP = LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP;

    /**
     * The table <code>security.link_user_group_user_role</code>.
     */
    public final LinkUserGroupUserRole LINK_USER_GROUP_USER_ROLE = LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE;

    /**
     * The table <code>security.link_user_role_authority</code>.
     */
    public final LinkUserRoleAuthority LINK_USER_ROLE_AUTHORITY = LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY;

    /**
     * The table <code>security.org_unit</code>.
     */
    public final OrgUnit ORG_UNIT = OrgUnit.ORG_UNIT;

    /**
     * The table <code>security.user_account</code>.
     */
    public final UserAccount USER_ACCOUNT = UserAccount.USER_ACCOUNT;

    /**
     * The table <code>security.user_account_refresh_token</code>.
     */
    public final UserAccountRefreshToken USER_ACCOUNT_REFRESH_TOKEN = UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN;

    /**
     * The table <code>security.user_group</code>.
     */
    public final UserGroup USER_GROUP = UserGroup.USER_GROUP;

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

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


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

    @Override
    public final List<Table<?>> getTables() {
        return Arrays.asList(
            AccessLevel.ACCESS_LEVEL,
            Authority.AUTHORITY,
            EsiaUser.ESIA_USER,
            LinkUserAccountUserGroup.LINK_USER_ACCOUNT_USER_GROUP,
            LinkUserGroupUserRole.LINK_USER_GROUP_USER_ROLE,
            LinkUserRoleAuthority.LINK_USER_ROLE_AUTHORITY,
            OrgUnit.ORG_UNIT,
            UserAccount.USER_ACCOUNT,
            UserAccountRefreshToken.USER_ACCOUNT_REFRESH_TOKEN,
            UserGroup.USER_GROUP,
            UserRole.USER_ROLE
        );
    }
}
