55 lines
2.2 KiB
Python
55 lines
2.2 KiB
Python
from django.db import models
|
|
|
|
|
|
class BugReport(models.Model):
|
|
STATUS_CHOICES = [('open', 'باز'), ('resolved', 'برطرفشده')]
|
|
|
|
user_id = models.IntegerField(db_index=True) # ارجاع سبک به accounts.User
|
|
title = models.CharField(max_length=150)
|
|
description = models.TextField()
|
|
screenshot_url = models.URLField(blank=True)
|
|
status = models.CharField(max_length=15, choices=STATUS_CHOICES, default='open')
|
|
# ارجاع سبک اختیاری به Ticket (نه FK واقعی)؛ یعنی این باگ میتونه بعداً
|
|
# به یک تیکت اسکیل بشه، ولی جوینی بین این دو مدل اجباری نیست.
|
|
linked_ticket_id = models.IntegerField(null=True, blank=True)
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
class Meta:
|
|
ordering = ['-created_at']
|
|
|
|
def __str__(self):
|
|
return f"bug-{self.pk}-{self.title}"
|
|
|
|
|
|
class Ticket(models.Model):
|
|
STATUS_CHOICES = [('open', 'باز'), ('in_progress', 'در حال بررسی'), ('closed', 'بسته')]
|
|
PRIORITY_CHOICES = [('low', 'کم'), ('normal', 'عادی'), ('high', 'بالا')]
|
|
|
|
user_id = models.IntegerField(db_index=True) # ارجاع سبک به accounts.User
|
|
subject = models.CharField(max_length=150)
|
|
category = models.CharField(max_length=30)
|
|
status = models.CharField(max_length=15, choices=STATUS_CHOICES, default='open')
|
|
priority = models.CharField(max_length=10, choices=PRIORITY_CHOICES, default='normal')
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
class Meta:
|
|
ordering = ['-created_at']
|
|
|
|
def __str__(self):
|
|
return f"ticket-{self.pk}-{self.subject}"
|
|
|
|
|
|
class TicketMessage(models.Model):
|
|
SENDER_CHOICES = [('user', 'کاربر'), ('support', 'پشتیبانی')]
|
|
|
|
ticket = models.ForeignKey(Ticket, on_delete=models.CASCADE, related_name='messages')
|
|
sender = models.CharField(max_length=10, choices=SENDER_CHOICES)
|
|
text = models.TextField()
|
|
created_at = models.DateTimeField(auto_now_add=True)
|
|
|
|
class Meta:
|
|
ordering = ['created_at']
|
|
|
|
def __str__(self):
|
|
return f"tmsg-{self.pk}-ticket{self.ticket_id}-{self.sender}"
|