39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
from django.db import models
|
|
from account.models import User
|
|
|
|
class Ticket(models.Model):
|
|
STATUS_CHOICES = [
|
|
('open', 'باز'),
|
|
('in_progress', 'در حال پردازش'),
|
|
('resolved', 'حل شده'),
|
|
('closed', 'بسته'),
|
|
]
|
|
|
|
subject = models.CharField(max_length=255, verbose_name='موضوع')
|
|
customer = models.ForeignKey(User, on_delete=models.CASCADE, related_name="tickets", verbose_name='کاربر')
|
|
admin = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True, related_name="assigned_tickets", verbose_name='ادمین')
|
|
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='open', verbose_name='وضعیت تیکت')
|
|
created_at = models.DateTimeField(auto_now_add=True, verbose_name='ساخته شده در')
|
|
updated_at = models.DateTimeField(auto_now=True, verbose_name='اپدیت شده در')
|
|
|
|
def __str__(self):
|
|
return self.subject
|
|
|
|
|
|
class Meta:
|
|
verbose_name = 'تیکت'
|
|
verbose_name_plural = 'تیکت ها'
|
|
|
|
|
|
class Message(models.Model):
|
|
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE, related_name="messages", verbose_name='تیکت')
|
|
sender = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='ارسال کننده')
|
|
content = models.TextField(verbose_name='محتوای پیام')
|
|
created_at = models.DateTimeField(auto_now_add=True, verbose_name='ساخته شده در')
|
|
|
|
def __str__(self):
|
|
return f"Message by {self.sender.full_name} on {self.ticket.subject}"
|
|
|
|
class Meta:
|
|
verbose_name = 'پیام تیکت'
|
|
verbose_name_plural = 'پیام های تیکت' |