__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"


import datetime

from django.db import models
from django.utils import timezone


class CompetingInterestQuerySet(models.QuerySet):
    def valid_on_date(self, date: datetime.date=None):
        """
        Filter for validity on given optional date.
        """
        if not date:
            date = timezone.now().date()
        return self.filter(
            Q(date_from__lte=date, date_until__isnull=True)
            | Q(date_from__isnull=True, date_until__gte=date)
            | Q(date_from__lte=date, date_until__gte=date)
            | Q(date_from__isnull=True, date_until__isnull=True)
        ).ordered()