from django_filters import FilterSet
from .models import StockshelfModel
class StockshelfFilter(FilterSet):
    class Meta:
        model = StockshelfModel
        fields = {
            "id": ['exact', 'iexact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
            "warehouse_code": ['exact', 'iexact', 'contains', 'icontains'],
            "warehouse_name": ['exact', 'iexact', 'contains', 'icontains'],
            "shelf_name": ['exact', 'iexact', 'contains', 'icontains'],
            "shelf_type": ['exact', 'iexact', 'contains', 'icontains'],
            "row": ['exact', 'iexact', 'gt', 'gte', 'lt', 'lte', 'range'],
            "col": ['exact', 'iexact', 'gt', 'gte', 'lt', 'lte', 'range'],
            "layer": ['exact', 'iexact', 'gt', 'gte', 'lt', 'lte', 'range'],
            "ip_address": ['exact', 'iexact', 'contains', 'icontains'],
            "port": ['exact', 'iexact', 'gt', 'gte', 'lt', 'lte', 'range'],
            "status": ['exact', 'iexact', 'contains', 'icontains'],
            "create_time": ['year', 'month', 'day', 'week_day', 'gt', 'gte', 'lt', 'lte', 'range'],
            "update_time": ['year', 'month', 'day', 'week_day', 'gt', 'gte', 'lt', 'lte', 'range']
        }

class StockBinFilter(FilterSet):
    class Meta:
        model = StockshelfModel
        fields = {
            "id": ['exact', 'iexact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
            "warehouse_code": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "warehouse_name": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "shelf_name": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "shelf_type": ['exact', 'iexact', 'contains', 'icontains'],
            "row": ['exact', 'gt', 'gte', 'lt', 'lte', 'in', 'range', 'isnull'],
            "col": ['exact', 'gt', 'gte', 'lt', 'lte', 'in', 'range', 'isnull'],
            "layer": ['exact', 'gt', 'gte', 'lt', 'lte', 'in', 'range', 'isnull'],
            "ip_address": ['exact', 'contains', 'startswith'],
            "port": ['exact', 'gt', 'gte', 'lt', 'lte', 'range', 'isnull'],
            "status": ['exact', 'iexact', 'contains', 'icontains'],
            "empty_label": ['exact', 'isnull'],
            "shelf_department": ['exact', 'iexact', 'contains', 'icontains'],
            "shelf_status": ['exact', 'iexact', 'contains', 'icontains'],
            "goods_code": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "goods_name": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "goods_std": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "goods_desc": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "goods_qty": ['exact', 'gt', 'gte', 'lt', 'lte', 'range', 'isnull'],
            "goods_unit": ['exact', 'iexact', 'contains', 'icontains'],
            "goods_price": ['exact', 'gt', 'gte', 'lt', 'lte', 'range', 'isnull'],
            "goods_batch": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "goods_notes": ['exact', 'iexact', 'contains', 'icontains', 'startswith'],
            "goods_in": ['exact', 'gt', 'gte', 'lt', 'lte', 'range', 'isnull'],
            "goods_out": ['exact', 'gt', 'gte', 'lt', 'lte', 'range', 'isnull'],
            "create_time": ['year', 'month', 'day', 'week_day', 'gt', 'gte', 'lt', 'lte', 'range'],
            "update_time": ['year', 'month', 'day', 'week_day', 'gt', 'gte', 'lt', 'lte', 'range']
        }