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 = [ ('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 = 'پیام های تیکت'