Files
AdNova/services/backend/apps/mlscore/models.py
T
2025-03-07 19:32:09 +03:00

41 lines
1.0 KiB
Python

from typing import Any
from django.core.cache import cache
from django.db import models
from apps.advertiser.models import Advertiser
from apps.client.models import Client
from apps.core.models import BaseModel
class Mlscore(BaseModel):
advertiser = models.ForeignKey(
Advertiser,
on_delete=models.CASCADE,
related_name="mlscores",
)
client = models.ForeignKey(
Client,
on_delete=models.CASCADE,
related_name="mlscores",
)
score = models.PositiveIntegerField()
def __str__(self) -> str:
return f"{self.advertiser.name} | {self.client.login}"
def save(self, *args: Any, **kwargs: Any) -> None:
super().save(*args, **kwargs)
self.setup_cache()
def setup_cache(self) -> None:
cache.add(f"mlscore_{self.client_id}_{self.advertiser_id}", self.score)
cache.set(f"mlscore_{self.client_id}_{self.advertiser_id}", self.score)
class Meta:
unique_together = (
"advertiser",
"client",
)