from django.db import models import uuid class Ticket(models.Model): STATUS_CHOICES = [ ('Open', 'Open'), ('In Progress', 'In Progress'), ('Closed', 'Closed'), ] id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) ticket_id = models.CharField(max_length=8, unique=True, editable=False) name = models.CharField(max_length=100) email = models.EmailField() subject = models.CharField(max_length=255) description = models.TextField() status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='Open') created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) def save(self, *args, **kwargs): if not self.ticket_id: # Generate a unique 8-character ticket ID self.ticket_id = str(uuid.uuid4().hex)[:8].upper() super().save(*args, **kwargs) def __str__(self): return f"{self.ticket_id} - {self.subject}"