from django.db.models import QuerySet, Manager


class CountryManager(Manager):
    """
    This is the CountryManager.

    It manages queries for the Country model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class StateManager(Manager):
    """
    This is the StateManager.

    It manages queries for the State model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class CityManager(Manager):
    """
    This is the CityManager.

    It manages queries for the City model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class ConnectorManager(Manager):
    """
    This is the ConnectorManager.

    It manages queries for the Connector model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class NetworkOperatorManager(Manager):
    """
    This is the NetworkOperatorManager.

    It manages queries for the NetworkOperator model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class LocationManager(Manager):
    """
    This is the LocationManager.

    It manages queries for the Location model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class AmenitiesManager(Manager):
    """
    This is the AmenitiesManager.

    It manages queries for the Amenities model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class RatingLabelManager(Manager):
    """
    This is the RatingLabelManager.

    It manages queries for the RatingLabel model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class RatingLabelsAssetManager(Manager):
    """
    This is the RatingLabelsAssetManager.

    It manages queries for the RatingLabelsAsset model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class PrivacyPolicyManager(Manager):
    """
    This is the PrivacyPolicyManager.

    It manages queries for the PrivacyPolicy model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class TermsOfUseMasterManager(Manager):
    """
    This is the TermsOfUseMasterManager.

    It manages queries for the TermsOfUse model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class InsuranceCompanyMasterManager(Manager):
    """
    This is the TermsOfUseMasterManager.

    It manages queries for the TermsOfUse model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class InsuranceTypeMasterManager(Manager):
    """
    This is the TermsOfUseMasterManager.

    It manages queries for the TermsOfUse model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class FaqMasterManager(Manager):
    """
    This is the FaqMasterManager.

    It manages queries for the Faq model, filtering by is_removed=False.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        return QuerySet(self.model, using=self._db).filter(is_removed=False)


class ContactUsRequestTypeMasterManager(Manager):
    """
    Manager class for handling queries related to ContactUsRequestTypeMaster model.

    This manager filters queries to include only non-removed entries.

    Methods:
        get_queryset: Filter the queryset to include only non-removed entries.
    """

    def get_queryset(self):
        """
        Get a queryset of ContactUsRequestTypeMaster instances with 'is_removed' set to False.

        Returns:
            QuerySet: The queryset of non-removed ContactUsRequestTypeMaster instances.
        """
        return QuerySet(self.model, using=self._db).filter(is_removed=False)
