from django.db import models from simple_history.models import HistoricalRecords from users.models import Employee class Intervention(models.Model): STATUS_CHOICES = [ ("nou", "Nou (Deschis)"), ("in_lucru", "În lucru"), ("in_asteptare", "În așteptare"), ("solutionat", "Soluționat"), ("inchis", "Închis"), ] PRIORITY_CHOICES = [ ("scazuta", "Scăzută"), ("medie", "Medie"), ("ridicata", "Ridicată"), ("critica", "Critică (Urgență)"), ] title = models.CharField(max_length=255, verbose_name="Titlu scurt / Subiect") description = models.TextField(verbose_name="Descrierea problemei") # Tracking the timeline created_at = models.DateTimeField(auto_now_add=True, verbose_name="Data raportării") updated_at = models.DateTimeField(auto_now=True, verbose_name="Ultima actualizare") resolved_at = models.DateTimeField( null=True, blank=True, verbose_name="Data soluționării" ) status = models.CharField( max_length=20, choices=STATUS_CHOICES, default="nou", verbose_name="Stare" ) priority = models.CharField( max_length=20, choices=PRIORITY_CHOICES, default="medie", verbose_name="Prioritate", ) # People involved reported_by = models.ForeignKey( Employee, on_delete=models.CASCADE, related_name="reported_interventions", verbose_name="Raportat de (Utilizator)", ) assigned_to_it = models.CharField( max_length=150, blank=True, null=True, verbose_name="Atribuit către (IT)" ) resolution_notes = models.TextField( blank=True, null=True, verbose_name="Note de soluționare" ) history = HistoricalRecords() def __str__(self): return f"Ticket #{self.id} - {self.title} ({self.get_status_display()})" class Meta: verbose_name = "Intervenție Tehnică" verbose_name_plural = "Intervenții Tehnice" ordering = ["-created_at"]