from django.db import models
from django.contrib.auth.models import User

class SystemFeedback(models.Model):
    KATEGORI_CHOICES = [
        ("bug", "Laporan Ralat Sistem (Bug)"),
        ("cadangan", "Cadangan Penambahbaikan UI/UX"),
        ("pertanyaan", "Pertanyaan / Bantuan Teknikal"),
    ]
    
    STATUS_CHOICES = [
        ("pending", "Menunggu Tindakan"),
        ("resolved", "Selesai (Resolved)"),
    ]

    kategori = models.CharField(max_length=20, choices=KATEGORI_CHOICES, default="pertanyaan")
    tajuk = models.CharField(max_length=255, help_text="Ringkasan isu")
    mesej = models.TextField(help_text="Penerangan terperinci")
    status = models.CharField(max_length=20, choices=STATUS_CHOICES, default="pending")
    
    # Boleh kosong jika pelawat luar (tidak log masuk) yang menghantar
    submitted_by = models.ForeignKey(
        User, null=True, blank=True, on_delete=models.SET_NULL, related_name="feedbacks"
    )
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ["-created_at"]
        verbose_name = "Maklum Balas Sistem"
        verbose_name_plural = "Maklum Balas Sistem"

    def __str__(self):
        return f"[{self.get_status_display()}] {self.tajuk}"