"""
expense/filters.py
"""

import django_filters
from django import forms

from horilla.filters import HorillaFilterSet

from .models import (
    STATUS_CHOICES,
    ExpenseApprovalWorkflow,
    ExpenseRequest,
)


class ExpenseRequestFilter(HorillaFilterSet):
    title = django_filters.CharFilter(
        lookup_expr="icontains",
        widget=forms.TextInput(attrs={"class": "oh-input w-100"}),
    )
    reference_number = django_filters.CharFilter(
        lookup_expr="icontains",
        widget=forms.TextInput(attrs={"class": "oh-input w-100"}),
    )
    status = django_filters.ChoiceFilter(
        choices=[("", "---------")] + STATUS_CHOICES,
        widget=forms.Select(attrs={"class": "oh-select oh-select-2"}),
    )
    amount__gte = django_filters.NumberFilter(
        field_name="amount",
        lookup_expr="gte",
        label="Amount from (₦)",
        widget=forms.NumberInput(attrs={"class": "oh-input w-100"}),
    )
    amount__lte = django_filters.NumberFilter(
        field_name="amount",
        lookup_expr="lte",
        label="Amount to (₦)",
        widget=forms.NumberInput(attrs={"class": "oh-input w-100"}),
    )

    class Meta:
        model = ExpenseRequest
        fields = ["title", "reference_number", "status"]
