from django.db import models


class EmailLog(models.Model):
    """Records every email send attempt — visible in Admin → Email Logs."""

    STATUS_CHOICES = [
        ('sent',    '✅ Sent'),
        ('failed',  '❌ Failed'),
        ('retried', '🔄 Sent after retry'),
    ]

    recipient  = models.CharField(max_length=254)
    subject    = models.CharField(max_length=250)
    template   = models.CharField(max_length=100, blank=True)
    status     = models.CharField(max_length=10, choices=STATUS_CHOICES, default='sent')
    attempts   = models.PositiveSmallIntegerField(default=1)
    error_msg  = models.TextField(blank=True, help_text='Error message from last attempt')
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering            = ['-created_at']
        verbose_name        = 'Email Log'
        verbose_name_plural = 'Email Logs'

    def __str__(self):
        return f'[{self.status}] {self.subject} → {self.recipient}'
