import django_filters
from django.db.models import Q

from apps.products.models import Product


class ProductFilter(django_filters.FilterSet):
    store = django_filters.NumberFilter(field_name="store_id")
    category = django_filters.NumberFilter(field_name="category_id")
    search = django_filters.CharFilter(method="filter_search")

    class Meta:
        model = Product
        fields = ["store", "category"]

    def filter_search(self, queryset, name, value):
        return queryset.filter(Q(name_en__icontains=value) | Q(name_ar__icontains=value))
