"""
Author: Michel Peltriaux
Organization: Struktur- und Genehmigungsdirektion Nord, Rhineland-Palatinate, Germany
Contact: michel.peltriaux@sgdnord.rlp.de
Created on: 12.01.22

"""
import django_filters

from konova.filters.mixins import RegistrationOfficeTableFilterMixin, ConservationOfficeTableFilterMixin, \
    KeywordTableFilterMixin, FileNumberTableFilterMixin, GeoReferencedTableFilterMixin, ShareableTableFilterMixin, \
    RecordableTableFilterMixin


class AbstractTableFilter(django_filters.FilterSet):
    """ Base TableFilter for all models

    """
    selection_filter = None
    query_filter = None
    checkbox_filter = None
    qs = None
    user = None

    class Meta:
        abstract = True


class SelectionTableFilter(RegistrationOfficeTableFilterMixin,
                           ConservationOfficeTableFilterMixin):
    """ TableFilter holding different filter options for selection related filtering

    """
    pass


class QueryTableFilter(KeywordTableFilterMixin,
                       FileNumberTableFilterMixin,
                       GeoReferencedTableFilterMixin):
    """ TableFilter holding different filter options for query related filtering

    """
    pass


class CheckboxTableFilter(ShareableTableFilterMixin, RecordableTableFilterMixin):
    """ TableFilter holding different filter options for checkbox related filtering

    """
    pass