/*
 * This file is generated by jOOQ.
 */
package cn.vertxup.battery.domain.tables.daos;


import cn.vertxup.battery.domain.tables.BBlock;
import cn.vertxup.battery.domain.tables.records.BBlockRecord;
import io.github.jklingsporn.vertx.jooq.classic.jdbc.JDBCClassicQueryExecutor;
import io.github.jklingsporn.vertx.jooq.shared.internal.AbstractVertxDAO;
import io.vertx.core.Future;
import org.jooq.Configuration;

import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BBlockDao extends AbstractVertxDAO<BBlockRecord, cn.vertxup.battery.domain.tables.pojos.BBlock, String, Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>>, Future<cn.vertxup.battery.domain.tables.pojos.BBlock>, Future<Integer>, Future<String>> implements io.github.jklingsporn.vertx.jooq.classic.VertxDAO<BBlockRecord,cn.vertxup.battery.domain.tables.pojos.BBlock,String> {

        /**
     * @param configuration The Configuration used for rendering and query
     * execution.
     * @param vertx the vertx instance
     */
        public BBlockDao(Configuration configuration, io.vertx.core.Vertx vertx) {
                super(BBlock.B_BLOCK, cn.vertxup.battery.domain.tables.pojos.BBlock.class, new JDBCClassicQueryExecutor<BBlockRecord,cn.vertxup.battery.domain.tables.pojos.BBlock,String>(configuration,cn.vertxup.battery.domain.tables.pojos.BBlock.class,vertx));
        }

        @Override
        protected String getId(cn.vertxup.battery.domain.tables.pojos.BBlock object) {
                return object.getKey();
        }

        /**
     * Find records that have <code>CODE IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByCode(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.CODE.in(values));
        }

        /**
     * Find records that have <code>CODE IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByCode(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.CODE.in(values),limit);
        }

        /**
     * Find records that have <code>NAME IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByName(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.NAME.in(values));
        }

        /**
     * Find records that have <code>NAME IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByName(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.NAME.in(values),limit);
        }

        /**
     * Find records that have <code>VERSION IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByVersion(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.VERSION.in(values));
        }

        /**
     * Find records that have <code>VERSION IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByVersion(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.VERSION.in(values),limit);
        }

        /**
     * Find records that have <code>AUTHORIZED IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByAuthorized(Collection<Boolean> values) {
                return findManyByCondition(BBlock.B_BLOCK.AUTHORIZED.in(values));
        }

        /**
     * Find records that have <code>AUTHORIZED IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByAuthorized(Collection<Boolean> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.AUTHORIZED.in(values),limit);
        }

        /**
     * Find records that have <code>UI_ICON IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiIcon(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.UI_ICON.in(values));
        }

        /**
     * Find records that have <code>UI_ICON IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiIcon(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UI_ICON.in(values),limit);
        }

        /**
     * Find records that have <code>UI_STYLE IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiStyle(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.UI_STYLE.in(values));
        }

        /**
     * Find records that have <code>UI_STYLE IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiStyle(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UI_STYLE.in(values),limit);
        }

        /**
     * Find records that have <code>UI_SORT IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiSort(Collection<Long> values) {
                return findManyByCondition(BBlock.B_BLOCK.UI_SORT.in(values));
        }

        /**
     * Find records that have <code>UI_SORT IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiSort(Collection<Long> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UI_SORT.in(values),limit);
        }

        /**
     * Find records that have <code>UI_CONFIG IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiConfig(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.UI_CONFIG.in(values));
        }

        /**
     * Find records that have <code>UI_CONFIG IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiConfig(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UI_CONFIG.in(values),limit);
        }

        /**
     * Find records that have <code>UI_CONTENT IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiContent(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.UI_CONTENT.in(values));
        }

        /**
     * Find records that have <code>UI_CONTENT IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUiContent(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UI_CONTENT.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_ISSUER IN (values)</code>
     * asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignIssuer(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_ISSUER.in(values));
        }

        /**
     * Find records that have <code>SIGN_ISSUER IN (values)</code>
     * asynchronously limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignIssuer(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_ISSUER.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_NAME IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignName(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_NAME.in(values));
        }

        /**
     * Find records that have <code>SIGN_NAME IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignName(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_NAME.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_AT IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignAt(Collection<LocalDateTime> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_AT.in(values));
        }

        /**
     * Find records that have <code>SIGN_AT IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignAt(Collection<LocalDateTime> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_AT.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_SECRET IN (values)</code>
     * asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignSecret(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_SECRET.in(values));
        }

        /**
     * Find records that have <code>SIGN_SECRET IN (values)</code>
     * asynchronously limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignSecret(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_SECRET.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_LIC IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignLic(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_LIC.in(values));
        }

        /**
     * Find records that have <code>SIGN_LIC IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignLic(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_LIC.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_END IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignEnd(Collection<LocalDateTime> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_END.in(values));
        }

        /**
     * Find records that have <code>SIGN_END IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignEnd(Collection<LocalDateTime> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_END.in(values),limit);
        }

        /**
     * Find records that have <code>SIGN_START IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignStart(Collection<LocalDateTime> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_START.in(values));
        }

        /**
     * Find records that have <code>SIGN_START IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySignStart(Collection<LocalDateTime> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGN_START.in(values),limit);
        }

        /**
     * Find records that have <code>LIC_IDENTIFIER IN (values)</code>
     * asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByLicIdentifier(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.LIC_IDENTIFIER.in(values));
        }

        /**
     * Find records that have <code>LIC_IDENTIFIER IN (values)</code>
     * asynchronously limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByLicIdentifier(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.LIC_IDENTIFIER.in(values),limit);
        }

        /**
     * Find records that have <code>LIC_MENU IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByLicMenu(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.LIC_MENU.in(values));
        }

        /**
     * Find records that have <code>LIC_MENU IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByLicMenu(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.LIC_MENU.in(values),limit);
        }

        /**
     * Find records that have <code>APP_ID IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByAppId(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.APP_ID.in(values));
        }

        /**
     * Find records that have <code>APP_ID IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByAppId(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.APP_ID.in(values),limit);
        }

        /**
     * Find records that have <code>BAG_ID IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByBagId(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.BAG_ID.in(values));
        }

        /**
     * Find records that have <code>BAG_ID IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByBagId(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.BAG_ID.in(values),limit);
        }

        /**
     * Find records that have <code>ACTIVE IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByActive(Collection<Boolean> values) {
                return findManyByCondition(BBlock.B_BLOCK.ACTIVE.in(values));
        }

        /**
     * Find records that have <code>ACTIVE IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByActive(Collection<Boolean> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.ACTIVE.in(values),limit);
        }

        /**
     * Find records that have <code>SIGMA IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySigma(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.SIGMA.in(values));
        }

        /**
     * Find records that have <code>SIGMA IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyBySigma(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.SIGMA.in(values),limit);
        }

        /**
     * Find records that have <code>METADATA IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByMetadata(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.METADATA.in(values));
        }

        /**
     * Find records that have <code>METADATA IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByMetadata(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.METADATA.in(values),limit);
        }

        /**
     * Find records that have <code>LANGUAGE IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByLanguage(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.LANGUAGE.in(values));
        }

        /**
     * Find records that have <code>LANGUAGE IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByLanguage(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.LANGUAGE.in(values),limit);
        }

        /**
     * Find records that have <code>CREATED_AT IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByCreatedAt(Collection<LocalDateTime> values) {
                return findManyByCondition(BBlock.B_BLOCK.CREATED_AT.in(values));
        }

        /**
     * Find records that have <code>CREATED_AT IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByCreatedAt(Collection<LocalDateTime> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.CREATED_AT.in(values),limit);
        }

        /**
     * Find records that have <code>CREATED_BY IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByCreatedBy(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.CREATED_BY.in(values));
        }

        /**
     * Find records that have <code>CREATED_BY IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByCreatedBy(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.CREATED_BY.in(values),limit);
        }

        /**
     * Find records that have <code>UPDATED_AT IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUpdatedAt(Collection<LocalDateTime> values) {
                return findManyByCondition(BBlock.B_BLOCK.UPDATED_AT.in(values));
        }

        /**
     * Find records that have <code>UPDATED_AT IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUpdatedAt(Collection<LocalDateTime> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UPDATED_AT.in(values),limit);
        }

        /**
     * Find records that have <code>UPDATED_BY IN (values)</code> asynchronously
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUpdatedBy(Collection<String> values) {
                return findManyByCondition(BBlock.B_BLOCK.UPDATED_BY.in(values));
        }

        /**
     * Find records that have <code>UPDATED_BY IN (values)</code> asynchronously
     * limited by the given limit
     */
        public Future<List<cn.vertxup.battery.domain.tables.pojos.BBlock>> findManyByUpdatedBy(Collection<String> values, int limit) {
                return findManyByCondition(BBlock.B_BLOCK.UPDATED_BY.in(values),limit);
        }

        @Override
        public JDBCClassicQueryExecutor<BBlockRecord,cn.vertxup.battery.domain.tables.pojos.BBlock,String> queryExecutor(){
                return (JDBCClassicQueryExecutor<BBlockRecord,cn.vertxup.battery.domain.tables.pojos.BBlock,String>) super.queryExecutor();
        }
}
