feat: added advertiser and campaign apps

This commit is contained in:
ITQ
2025-02-20 22:54:28 +03:00
parent 4793973233
commit 0f77f9eb73
24 changed files with 1580 additions and 0 deletions
@@ -0,0 +1,49 @@
from django.core.cache import cache
from django.core.exceptions import ValidationError
class CampaignAgeValidator:
def __call__(self, instance) -> None: # noqa: ANN001
if (
isinstance(instance.age_from, int)
and isinstance(instance.age_to, int)
and instance.age_from > instance.age_to
):
err = "age_from can't be greater than age_to"
raise ValidationError(err)
class CampaignDurationValidator:
def __call__(self, instance) -> None: # noqa: ANN001
if (
isinstance(instance.start_date, int)
and isinstance(instance.end_date, int)
and instance.start_date > instance.end_date
):
err = "start_date can't be greater than end_date"
raise ValidationError(err)
class CampaignLimitsValidator:
def __call__(self, instance) -> None: # noqa: ANN001
if (
isinstance(instance.impressions_limit, int)
and isinstance(instance.clicks_limit, int)
and instance.impressions_limit < instance.clicks_limit
):
err = "clicks_limit can't be greater than impressions_limit"
raise ValidationError(err)
class CampaignTargetingLocationValidator:
def __call__(self, instance) -> None: # noqa: ANN001
if instance.location == "":
err = "targeting.location cannot be blank"
raise ValidationError(err)
class CampaignReportMessageValidator:
def __call__(self, instance) -> None: # noqa: ANN001
if instance.message == "":
err = "message cannot be blank"
raise ValidationError(err)