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


import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;

import jj.tech.paolu.repository.jooq.tables.CurrentG24;
import jj.tech.paolu.repository.jooq.tables.records.CurrentG24Record;

import org.jooq.Configuration;
import org.jooq.impl.DAOImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;


/**
 * This class is generated by jOOQ.
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes", "this-escape" })
@Repository
public class CurrentG24Dao extends DAOImpl<CurrentG24Record, jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24, String> {

    /**
     * Create a new CurrentG24Dao without any configuration
     */
    public CurrentG24Dao() {
        super(CurrentG24.CURRENT_G24, jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24.class);
    }

    /**
     * Create a new CurrentG24Dao with an attached configuration
     */
    @Autowired
    public CurrentG24Dao(Configuration configuration) {
        super(CurrentG24.CURRENT_G24, jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24.class, configuration);
    }

    @Override
    public String getId(jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24 object) {
        return object.getId();
    }

    /**
     * Fetch records that have <code>id BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfId(String lowerInclusive, String upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.ID, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>id IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchById(String... values) {
        return fetch(CurrentG24.CURRENT_G24.ID, values);
    }

    /**
     * Fetch a unique record that has <code>id = value</code>
     */
    public jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24 fetchOneById(String value) {
        return fetchOne(CurrentG24.CURRENT_G24.ID, value);
    }

    /**
     * Fetch a unique record that has <code>id = value</code>
     */
    public Optional<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchOptionalById(String value) {
        return fetchOptional(CurrentG24.CURRENT_G24.ID, value);
    }

    /**
     * Fetch records that have <code>newIssue BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfNewissue(String lowerInclusive, String upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.NEWISSUE, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>newIssue IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByNewissue(String... values) {
        return fetch(CurrentG24.CURRENT_G24.NEWISSUE, values);
    }

    /**
     * Fetch a unique record that has <code>newIssue = value</code>
     */
    public jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24 fetchOneByNewissue(String value) {
        return fetchOne(CurrentG24.CURRENT_G24.NEWISSUE, value);
    }

    /**
     * Fetch a unique record that has <code>newIssue = value</code>
     */
    public Optional<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchOptionalByNewissue(String value) {
        return fetchOptional(CurrentG24.CURRENT_G24.NEWISSUE, value);
    }

    /**
     * Fetch records that have <code>issue BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfIssue(String lowerInclusive, String upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.ISSUE, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>issue IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByIssue(String... values) {
        return fetch(CurrentG24.CURRENT_G24.ISSUE, values);
    }

    /**
     * Fetch records that have <code>ball BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfBall(String lowerInclusive, String upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.BALL, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>ball IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByBall(String... values) {
        return fetch(CurrentG24.CURRENT_G24.BALL, values);
    }

    /**
     * Fetch records that have <code>closeTime BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfClosetime(Integer lowerInclusive, Integer upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.CLOSETIME, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>closeTime IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByClosetime(Integer... values) {
        return fetch(CurrentG24.CURRENT_G24.CLOSETIME, values);
    }

    /**
     * Fetch records that have <code>openTime BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfOpentime(Integer lowerInclusive, Integer upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.OPENTIME, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>openTime IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByOpentime(Integer... values) {
        return fetch(CurrentG24.CURRENT_G24.OPENTIME, values);
    }

    /**
     * Fetch records that have <code>addTime BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfAddtime(LocalDateTime lowerInclusive, LocalDateTime upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.ADDTIME, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>addTime IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByAddtime(LocalDateTime... values) {
        return fetch(CurrentG24.CURRENT_G24.ADDTIME, values);
    }

    /**
     * Fetch records that have <code>gameID BETWEEN lowerInclusive AND
     * upperInclusive</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchRangeOfGameid(String lowerInclusive, String upperInclusive) {
        return fetchRange(CurrentG24.CURRENT_G24.GAMEID, lowerInclusive, upperInclusive);
    }

    /**
     * Fetch records that have <code>gameID IN (values)</code>
     */
    public List<jj.tech.paolu.repository.jooq.tables.pojos.CurrentG24> fetchByGameid(String... values) {
        return fetch(CurrentG24.CURRENT_G24.GAMEID, values);
    }
}
