/*
 * This file is generated by jOOQ.
 */
package ru.micord.ervu_dashboard.db_beans.ervu_dashboard.tables;


import java.util.Collection;
import java.util.UUID;

import org.jooq.Condition;
import org.jooq.Field;
import org.jooq.Identity;
import org.jooq.Name;
import org.jooq.PlainSQL;
import org.jooq.QueryPart;
import org.jooq.SQL;
import org.jooq.Schema;
import org.jooq.Select;
import org.jooq.Stringly;
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;

import ru.micord.ervu_dashboard.db_beans.ervu_dashboard.ErvuDashboard;
import ru.micord.ervu_dashboard.db_beans.ervu_dashboard.Keys;
import ru.micord.ervu_dashboard.db_beans.ervu_dashboard.tables.records.CitizenComplexFiltersRecord;


/**
 * сведения о гражданине - сложные фильтры
 */
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class CitizenComplexFilters extends TableImpl<CitizenComplexFiltersRecord> {

    private static final long serialVersionUID = 1L;

    /**
     * The reference instance of
     * <code>ervu_dashboard.citizen_complex_filters</code>
     */
    public static final CitizenComplexFilters CITIZEN_COMPLEX_FILTERS = new CitizenComplexFilters();

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

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.citizen_complex_filters_id</code>.
     */
    public final TableField<CitizenComplexFiltersRecord, Long> CITIZEN_COMPLEX_FILTERS_ID = createField(DSL.name("citizen_complex_filters_id"), SQLDataType.BIGINT.nullable(false).identity(true), this, "");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.recruit_id</code>. ссылка на
     * гражданина (citizen)
     */
    public final TableField<CitizenComplexFiltersRecord, UUID> RECRUIT_ID = createField(DSL.name("recruit_id"), SQLDataType.UUID.nullable(false), this, "ссылка на гражданина (citizen)");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.children</code>.
     * Сведения о наличии у гражданина несовершеннолетних детей
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> CHILDREN = createField(DSL.name("children"), SQLDataType.BOOLEAN, this, "Сведения о наличии у гражданина несовершеннолетних детей");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.ward</code>.
     * Сведения об опекаемом
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> WARD = createField(DSL.name("ward"), SQLDataType.BOOLEAN, this, "Сведения об опекаемом");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.conscription</code>.
     * Сведения об отсрочке или освобождении от призыва
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> CONSCRIPTION = createField(DSL.name("conscription"), SQLDataType.BOOLEAN, this, "Сведения об отсрочке или освобождении от призыва");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.employment</code>.
     * Информация о трудовой деятельности
     */
    public final TableField<CitizenComplexFiltersRecord, String> EMPLOYMENT = createField(DSL.name("employment"), SQLDataType.VARCHAR, this, "Информация о трудовой деятельности");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.parental_leave</code>.
     * Сведения о нахождении в отпуске по уходу за ребенком
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> PARENTAL_LEAVE = createField(DSL.name("parental_leave"), SQLDataType.BOOLEAN, this, "Сведения о нахождении в отпуске по уходу за ребенком");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.ip</code>.
     * Индивидуальный предприниматель
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> IP = createField(DSL.name("ip"), SQLDataType.BOOLEAN, this, "Индивидуальный предприниматель");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.self_employed</code>.
     * Самозанятый
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> SELF_EMPLOYED = createField(DSL.name("self_employed"), SQLDataType.BOOLEAN, this, "Самозанятый");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.education</code>.
     * Сведения об образовании
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> EDUCATION = createField(DSL.name("education"), SQLDataType.BOOLEAN, this, "Сведения об образовании");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.profession_female</code>.
     * Сведения о получении профессии, специальности, при наличии которых
     * граждане женского поля получают военно-учётные специальности
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> PROFESSION_FEMALE = createField(DSL.name("profession_female"), SQLDataType.BOOLEAN, this, "Сведения о получении профессии, специальности, при наличии которых граждане женского поля получают военно-учётные специальности");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.academic_leave</code>.
     * Сведения об академическом отпуске
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> ACADEMIC_LEAVE = createField(DSL.name("academic_leave"), SQLDataType.BOOLEAN, this, "Сведения об академическом отпуске");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.military_center</code>.
     * Сведения об обучении в военно-учебном центре
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> MILITARY_CENTER = createField(DSL.name("military_center"), SQLDataType.BOOLEAN, this, "Сведения об обучении в военно-учебном центре");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.militery_department</code>.
     * Сведения об обучении на военной кафедре
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> MILITERY_DEPARTMENT = createField(DSL.name("militery_department"), SQLDataType.BOOLEAN, this, "Сведения об обучении на военной кафедре");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.rus_diplomas</code>.
     * Российские дипломы/аттестаты
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> RUS_DIPLOMAS = createField(DSL.name("rus_diplomas"), SQLDataType.BOOLEAN, this, "Российские дипломы/аттестаты");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.foreign_diplomas</code>.
     * Иностранные дипломы / аттестаты
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> FOREIGN_DIPLOMAS = createField(DSL.name("foreign_diplomas"), SQLDataType.BOOLEAN, this, "Иностранные дипломы / аттестаты");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.diseases</code>.
     * Сведения о наличии заболевания (состояния)
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> DISEASES = createField(DSL.name("diseases"), SQLDataType.BOOLEAN, this, "Сведения о наличии заболевания (состояния)");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.hiv_infection</code>.
     * Сведения о гражданах, состоящих на учете по поводу инфицирования ВИЧ
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> HIV_INFECTION = createField(DSL.name("hiv_infection"), SQLDataType.BOOLEAN, this, "Сведения о гражданах, состоящих на учете по поводу инфицирования ВИЧ");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.reg_pnd</code>.
     * Сведения о гражданах, состоящих на учете в ПНД
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> REG_PND = createField(DSL.name("reg_pnd"), SQLDataType.BOOLEAN, this, "Сведения о гражданах, состоящих на учете в ПНД");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.disability</code>. Сведения
     * об инвалидности
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> DISABILITY = createField(DSL.name("disability"), SQLDataType.BOOLEAN, this, "Сведения об инвалидности");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.incompetent</code>. Сведения
     * о гражданах, признанных недееспособными, ограниченно дееспособными
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> INCOMPETENT = createField(DSL.name("incompetent"), SQLDataType.BOOLEAN, this, "Сведения о гражданах, признанных недееспособными, ограниченно дееспособными");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.sports_categories</code>.
     * Сведения о присвоении спортивных разрядов и званий
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> SPORTS_CATEGORIES = createField(DSL.name("sports_categories"), SQLDataType.BOOLEAN, this, "Сведения о присвоении спортивных разрядов и званий");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.drive_vehicle</code>.
     * Сведения о праве управления транспортным средством
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> DRIVE_VEHICLE = createField(DSL.name("drive_vehicle"), SQLDataType.BOOLEAN, this, "Сведения о праве управления транспортным средством");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.tractor_license</code>.
     * Удостоверение тракториста-машиниста
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> TRACTOR_LICENSE = createField(DSL.name("tractor_license"), SQLDataType.BOOLEAN, this, "Удостоверение тракториста-машиниста");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.issues_citizenship_rus</code>.
     * Сведения о принятии решений по вопросам гражданства Российской Федерации
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> ISSUES_CITIZENSHIP_RUS = createField(DSL.name("issues_citizenship_rus"), SQLDataType.BOOLEAN, this, "Сведения о принятии решений по вопросам гражданства Российской Федерации");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.reside_foreign</code>.
     * Наличие права проживания в иностранном государстве
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> RESIDE_FOREIGN = createField(DSL.name("reside_foreign"), SQLDataType.BOOLEAN, this, "Наличие права проживания в иностранном государстве");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.real_estate</code>.
     * Недвижимость
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> REAL_ESTATE = createField(DSL.name("real_estate"), SQLDataType.BOOLEAN, this, "Недвижимость");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.ground_vehicles</code>.
     * Наземные транспортные средства
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> GROUND_VEHICLES = createField(DSL.name("ground_vehicles"), SQLDataType.BOOLEAN, this, "Наземные транспортные средства");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.air_vehicles</code>.
     * Воздушные транспортные средства
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> AIR_VEHICLES = createField(DSL.name("air_vehicles"), SQLDataType.BOOLEAN, this, "Воздушные транспортные средства");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.water_vehicles</code>.
     * Водные транспортные средства
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> WATER_VEHICLES = createField(DSL.name("water_vehicles"), SQLDataType.BOOLEAN, this, "Водные транспортные средства");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.deputies</code>.
     * Граждане, избранные депутатами
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> DEPUTIES = createField(DSL.name("deputies"), SQLDataType.BOOLEAN, this, "Граждане, избранные депутатами");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.candidates_participate</code>.
     * Граждане, зарегистрированные кандидатами на участие в выборах
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> CANDIDATES_PARTICIPATE = createField(DSL.name("candidates_participate"), SQLDataType.BOOLEAN, this, "Граждане, зарегистрированные кандидатами на участие в выборах");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.criminal_prosecution</code>.
     * Сведения о факте уголовного преследования либо о прекращении уголовного
     * преследования
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> CRIMINAL_PROSECUTION = createField(DSL.name("criminal_prosecution"), SQLDataType.BOOLEAN, this, "Сведения о факте уголовного преследования либо о прекращении уголовного преследования");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.verdict</code>.
     * Сведения о вынесенном приговоре
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> VERDICT = createField(DSL.name("verdict"), SQLDataType.BOOLEAN, this, "Сведения о вынесенном приговоре");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.places_deprivation</code>.
     * Признак отбывания наказания в местах лишения свободы
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> PLACES_DEPRIVATION = createField(DSL.name("places_deprivation"), SQLDataType.BOOLEAN, this, "Признак отбывания наказания в местах лишения свободы");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.criminal_record</code>.
     * Сведения о судимости
     */
    public final TableField<CitizenComplexFiltersRecord, String> CRIMINAL_RECORD = createField(DSL.name("criminal_record"), SQLDataType.VARCHAR, this, "Сведения о судимости");

    /**
     * The column <code>ervu_dashboard.citizen_complex_filters.search</code>.
     * Сведения о розыске
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> SEARCH = createField(DSL.name("search"), SQLDataType.BOOLEAN, this, "Сведения о розыске");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.appealing_fz_53</code>.
     * Обжалование нарушений ФЗ-53
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> APPEALING_FZ_53 = createField(DSL.name("appealing_fz_53"), SQLDataType.BOOLEAN, this, "Обжалование нарушений ФЗ-53");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.administrative_fz_53</code>.
     * Административная ответственность в связи с нарушением ФЗ-53
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> ADMINISTRATIVE_FZ_53 = createField(DSL.name("administrative_fz_53"), SQLDataType.BOOLEAN, this, "Административная ответственность в связи с нарушением ФЗ-53");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.subpoena_directed</code>.
     * Сведения о направленнии повестки военного комиссариата
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> SUBPOENA_DIRECTED = createField(DSL.name("subpoena_directed"), SQLDataType.BOOLEAN, this, "Сведения о направленнии повестки военного комиссариата");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.subpoena_delivery</code>.
     * Признак вручения повестки
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> SUBPOENA_DELIVERY = createField(DSL.name("subpoena_delivery"), SQLDataType.BOOLEAN, this, "Признак вручения повестки");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.subpoena_appeared</code>.
     * Признак явки или неявки по повестке
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> SUBPOENA_APPEARED = createField(DSL.name("subpoena_appeared"), SQLDataType.BOOLEAN, this, "Признак явки или неявки по повестке");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.good_reason_subpoena_no_show</code>.
     * Сведения о признании причины неявки в военный комиссариат по повестке
     * уважительной
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> GOOD_REASON_SUBPOENA_NO_SHOW = createField(DSL.name("good_reason_subpoena_no_show"), SQLDataType.BOOLEAN, this, "Сведения о признании причины неявки в военный комиссариат по повестке уважительной");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.fact_criminal_prosecution_fz_53</code>.
     * Сведения о факте уголовного преследования
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> FACT_CRIMINAL_PROSECUTION_FZ_53 = createField(DSL.name("fact_criminal_prosecution_fz_53"), SQLDataType.BOOLEAN, this, "Сведения о факте уголовного преследования");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.maternity_leave</code>.
     * Сведения об отпуске по уходу за ребёнком
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> MATERNITY_LEAVE = createField(DSL.name("maternity_leave"), SQLDataType.BOOLEAN, this, "Сведения об отпуске по уходу за ребёнком");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.death_date_child</code>.
     * Наличие даты смерти ребёнка
     */
    public final TableField<CitizenComplexFiltersRecord, Boolean> DEATH_DATE_CHILD = createField(DSL.name("death_date_child"), SQLDataType.BOOLEAN, this, "Наличие даты смерти ребёнка");

    /**
     * The column
     * <code>ervu_dashboard.citizen_complex_filters.count_children</code>.
     * Количество несовершеннолетних детей
     */
    public final TableField<CitizenComplexFiltersRecord, Integer> COUNT_CHILDREN = createField(DSL.name("count_children"), SQLDataType.INTEGER, this, "Количество несовершеннолетних детей");

    private CitizenComplexFilters(Name alias, Table<CitizenComplexFiltersRecord> aliased) {
        this(alias, aliased, (Field<?>[]) null, null);
    }

    private CitizenComplexFilters(Name alias, Table<CitizenComplexFiltersRecord> aliased, Field<?>[] parameters, Condition where) {
        super(alias, null, aliased, parameters, DSL.comment("сведения о гражданине - сложные фильтры"), TableOptions.table(), where);
    }

    /**
     * Create an aliased <code>ervu_dashboard.citizen_complex_filters</code>
     * table reference
     */
    public CitizenComplexFilters(String alias) {
        this(DSL.name(alias), CITIZEN_COMPLEX_FILTERS);
    }

    /**
     * Create an aliased <code>ervu_dashboard.citizen_complex_filters</code>
     * table reference
     */
    public CitizenComplexFilters(Name alias) {
        this(alias, CITIZEN_COMPLEX_FILTERS);
    }

    /**
     * Create a <code>ervu_dashboard.citizen_complex_filters</code> table
     * reference
     */
    public CitizenComplexFilters() {
        this(DSL.name("citizen_complex_filters"), null);
    }

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

    @Override
    public Identity<CitizenComplexFiltersRecord, Long> getIdentity() {
        return (Identity<CitizenComplexFiltersRecord, Long>) super.getIdentity();
    }

    @Override
    public UniqueKey<CitizenComplexFiltersRecord> getPrimaryKey() {
        return Keys.PK_CITIZEN_COMPLEX_FILTERS;
    }

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

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

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

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

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

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

    /**
     * Create an inline derived table from this table
     */
    @Override
    public CitizenComplexFilters where(Condition condition) {
        return new CitizenComplexFilters(getQualifiedName(), aliased() ? this : null, null, condition);
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    public CitizenComplexFilters where(Collection<? extends Condition> conditions) {
        return where(DSL.and(conditions));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    public CitizenComplexFilters where(Condition... conditions) {
        return where(DSL.and(conditions));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    public CitizenComplexFilters where(Field<Boolean> condition) {
        return where(DSL.condition(condition));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    @PlainSQL
    public CitizenComplexFilters where(SQL condition) {
        return where(DSL.condition(condition));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    @PlainSQL
    public CitizenComplexFilters where(@Stringly.SQL String condition) {
        return where(DSL.condition(condition));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    @PlainSQL
    public CitizenComplexFilters where(@Stringly.SQL String condition, Object... binds) {
        return where(DSL.condition(condition, binds));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    @PlainSQL
    public CitizenComplexFilters where(@Stringly.SQL String condition, QueryPart... parts) {
        return where(DSL.condition(condition, parts));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    public CitizenComplexFilters whereExists(Select<?> select) {
        return where(DSL.exists(select));
    }

    /**
     * Create an inline derived table from this table
     */
    @Override
    public CitizenComplexFilters whereNotExists(Select<?> select) {
        return where(DSL.notExists(select));
    }
}
