Files
hossein-por-shop/backend/ticket/models.py
T
2025-02-21 21:41:01 +03:30

54 lines
2.5 KiB
Python

from django.db import models
from account.models import User
from order.models import OrderModel
from django_jalali.db import models as jmodels
class Ticket(models.Model):
objects = jmodels.jManager()
STATUS_CHOICES = [
('open', 'باز'),
('in_progress', 'در حال پردازش'),
('resolved', 'حل شده'),
('closed', 'بسته'),
]
CATEGORY_CHOICES = [
('finance_and_accounting', 'مالی و حسابداری'),
('user_profile', 'پروفایل کاربری'),
('order_tracking', 'پیگیری سفارش'),
('authentication', 'احراز هویت'),
('product', 'محصول'),
('bug_and_error_reporting', 'اعلام باگ و خطا در وبسایت'),
('other', 'سایر'),
]
subject = models.CharField(max_length=255, verbose_name='موضوع')
content = models.TextField(verbose_name='جزيیات تیکت')
ticket_category = models.CharField(max_length=30, verbose_name='دسته بندی تیکت', choices=CATEGORY_CHOICES)
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 = jmodels.jDateTimeField(auto_now_add=True, verbose_name='ساخته شده در')
updated_at = jmodels.jDateTimeField(auto_now=True, verbose_name='اپدیت شده در')
order = models.ForeignKey(OrderModel ,blank=True, null=True, on_delete=models.SET_NULL)
def __str__(self):
return self.subject
class Meta:
verbose_name = 'تیکت'
verbose_name_plural = 'تیکت ها'
class Message(models.Model):
objects = jmodels.jManager()
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 = jmodels.jDateTimeField(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 = 'پیام های تیکت'