Files
qlockify-backend-deployment/apps/clients/models.py

45 lines
1.2 KiB
Python

from django.db import models
from apps.logs.services import build_workspace_log_metadata
from apps.logs.services.constants import SECTION_CLIENTS
from apps.workspaces.models import Workspace
from core.models.base import BaseModel
class Client(BaseModel):
workspace = models.ForeignKey(
Workspace,
on_delete=models.CASCADE,
related_name="clients",
)
name = models.CharField(max_length=255)
notes = models.TextField(blank=True)
class Meta:
db_table = "client"
ordering = ("-updated_at", "-created_at")
indexes = [
models.Index(fields=["id"], name="client_id_idx"),
models.Index(fields=["workspace"], name="client_workspace_idx"),
]
constraints = [
models.UniqueConstraint(
fields=["workspace", "name"],
name="unique_client_name_per_workspace",
condition=models.Q(is_deleted=False),
)
]
def __str__(self):
return self.name
def get_additional_data(self):
return build_workspace_log_metadata(
section=SECTION_CLIENTS,
workspace_id=self.workspace_id,
target_id=self.id,
target_label=self.name,
)