33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
from django.db import models
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
class Client(models.Model):
|
|
name = models.CharField(_("Name"), max_length=200)
|
|
email = models.EmailField(_("Email"), max_length=254, unique=True)
|
|
phone = models.CharField(_("Phone"), max_length=20, blank=True, null=True)
|
|
address = models.TextField(_("Address"), blank=True, null=True)
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
def __str__(self):
|
|
return self.name
|
|
|
|
class Case(models.Model):
|
|
class CaseStatus(models.TextChoices):
|
|
OPEN = 'OPEN', _('Open')
|
|
CLOSED = 'CLOSED', _('Closed')
|
|
PENDING = 'PENDING', _('Pending')
|
|
|
|
case_title = models.CharField(_("Case Title"), max_length=200)
|
|
case_number = models.CharField(_("Case Number"), max_length=50, unique=True)
|
|
client = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='cases')
|
|
status = models.CharField(
|
|
_("Status"),
|
|
max_length=10,
|
|
choices=CaseStatus.choices,
|
|
default=CaseStatus.OPEN,
|
|
)
|
|
description = models.TextField(_("Description"))
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
def __str__(self):
|
|
return f"{self.case_number}: {self.case_title}" |