# extractly/filters.py

import django_filters
from extractly.models import (
    SourceHtml, SourceManual, NetworkMonitoredPage,
    AdsManual, Ads
)

class HtmlNetworkSourceFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')
    url = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = SourceHtml
        fields = ['name', 'url']

class ManualDataSourceFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = SourceManual
        fields = ['name', 'type']

class NetworkMonitoredPageFilter(django_filters.FilterSet):
    url = django_filters.CharFilter(lookup_expr='icontains')
    is_active = django_filters.BooleanFilter()
    is_complete = django_filters.BooleanFilter()

    class Meta:
        model = NetworkMonitoredPage
        fields = ['url', 'is_active', 'is_complete']

class NetworkMonitoringManualFilter(django_filters.FilterSet):
    title = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = AdsManual
        fields = ['title']

class NetworkMonitoringFilter(django_filters.FilterSet):
    status = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = Ads
        fields = ['status']
        
        