from django_filters import FilterSet
from .models import AsnListModel, AsnDetailModel


class AsnListFilter(FilterSet):

    class Meta:
        model = AsnListModel
        fields = {
            "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
            'code': ['icontains', 'exact'],
            'asn_code': ['icontains', 'exact'],
            'asn_status': ['exact'],
            'asn_type': ['exact'],

            'goods_code': ['icontains', 'exact'],
            'goods_desc': ['icontains'],
            'goods_qty': ['exact', 'gt', 'lt', 'gte', 'lte'],
            'goods_weight': ['exact', 'gt', 'lt', 'gte', 'lte'],

    
            'creater': ['icontains', 'exact'],
            'openid': ['exact'],
            'is_delete': ['exact'],
            'create_time': ['exact', 'gt', 'gte', 'lt', 'lte',
             'year', 'year__gt', 'year__gte', 'year__lt', 'year__lte', 'year__range', 'year__in', 
             'month','month__gt','month__gte','month__lt','month__lte','month__range','month__in', 
             'day', 'day__gt', 'day__gte', 'day__lt', 'day__lte', 'day__range', 'day__in',
              'week_day', 'week_day__gt', 'week_day__gte', 'week_day__lt', 'week_day__lte', 'week_day__range', 'week_day__in', 
              'hour', 'hour__gt', 'hour__gte', 'hour__lt', 'hour__lte', 'hour__range', 'hour__in',

              'date', 'date__gt', 'date__gte', 'date__lt', 'date__lte', 'date__range', 'date__in', 
              'time', 'time__gt', 'time__gte', 'time__lt', 'time__lte', 'time__range', 'time__in', 'isnull', 'in', 'range'],
            'update_time':
             ['exact', 'gt', 'gte', 'lt', 'lte',
             'year', 'year__gt', 'year__gte', 'year__lt', 'year__lte', 'year__range', 'year__in', 
             'month','month__gt','month__gte','month__lt','month__lte','month__range','month__in', 
             'day', 'day__gt', 'day__gte', 'day__lt', 'day__lte', 'day__range', 'day__in',
              'week_day', 'week_day__gt', 'week_day__gte', 'week_day__lt', 'week_day__lte', 'week_day__range', 'week_day__in', 
              'hour', 'hour__gt', 'hour__gte', 'hour__lt', 'hour__lte', 'hour__range', 'hour__in',

              'date', 'date__gt', 'date__gte', 'date__lt', 'date__lte', 'date__range', 'date__in', 
              'time', 'time__gt', 'time__gte', 'time__lt', 'time__lte', 'time__range', 'time__in', 'isnull', 'in', 'range'],
            
        }
class AsnDetailFilter(FilterSet):
    class Meta:
        model = AsnDetailModel
        fields = {
            "id": ['exact', 'gt', 'gte', 'lt', 'lte', 'isnull', 'in', 'range'],
            'asn_code': ['icontains', 'exact'],
            'asn_status': ['exact'],
            'asn_type': ['exact'],
            'goods_code': ['icontains', 'exact'],
            'goods_desc': ['icontains'],
            'goods_qty': ['exact', 'gt', 'lt', 'gte', 'lte'],
            'goods_weight': ['exact', 'gt', 'lt', 'gte', 'lte'],
            'warehouse_code': ['icontains', 'exact'],
            'warehouse_name': ['icontains'],
            'shelf_name': ['icontains'],
            'container_code': ['icontains', 'exact'],
            'creater': ['icontains', 'exact'],
            'openid': ['exact'],
            'is_delete': ['exact'],
            'create_time':  ['exact', 'gt', 'gte', 'lt', 'lte',
             'year', 'year__gt', 'year__gte', 'year__lt', 'year__lte', 'year__range', 'year__in', 
             'month','month__gt','month__gte','month__lt','month__lte','month__range','month__in', 
             'day', 'day__gt', 'day__gte', 'day__lt', 'day__lte', 'day__range', 'day__in',
              'week_day', 'week_day__gt', 'week_day__gte', 'week_day__lt', 'week_day__lte', 'week_day__range', 'week_day__in', 
              'hour', 'hour__gt', 'hour__gte', 'hour__lt', 'hour__lte', 'hour__range', 'hour__in',

              'date', 'date__gt', 'date__gte', 'date__lt', 'date__lte', 'date__range', 'date__in', 
              'time', 'time__gt', 'time__gte', 'time__lt', 'time__lte', 'time__range', 'time__in', 'isnull', 'in', 'range'],
              
            'update_time': ['exact', 'gt', 'gte', 'lt', 'lte',
             'year', 'year__gt', 'year__gte', 'year__lt', 'year__lte', 'year__range', 'year__in', 
             'month','month__gt','month__gte','month__lt','month__lte','month__range','month__in', 
             'day', 'day__gt', 'day__gte', 'day__lt', 'day__lte', 'day__range', 'day__in',
              'week_day', 'week_day__gt', 'week_day__gte', 'week_day__lt', 'week_day__lte', 'week_day__range', 'week_day__in', 
              'hour', 'hour__gt', 'hour__gte', 'hour__lt', 'hour__lte', 'hour__range', 'hour__in',

              'date', 'date__gt', 'date__gte', 'date__lt', 'date__lte', 'date__range', 'date__in', 
              'time', 'time__gt', 'time__gte', 'time__lt', 'time__lte', 'time__range', 'time__in', 'isnull', 'in', 'range'],
        }