from django.db import models
from django.conf import settings


class MorningEfficiencyLog(models.Model):
    """Execution audit log for Morning Action Point & Efficiency Agent runs."""

    class Status(models.TextChoices):
        SENT = "SENT", "Sent"
        FAILED = "FAILED", "Failed"
        DRY_RUN = "DRY_RUN", "Dry Run"

    user = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name="morning_efficiency_logs",
    )
    role = models.CharField(max_length=50, blank=True, default="")
    email_sent_to = models.EmailField()
    subject = models.CharField(max_length=255)
    
    action_point_count = models.PositiveIntegerField(default=0)
    interviews_today_count = models.PositiveIntegerField(default=0)
    pending_approvals_count = models.PositiveIntegerField(default=0)
    
    email_status = models.CharField(
        max_length=20, choices=Status.choices, default=Status.SENT
    )
    ai_insight = models.TextField(blank=True, default="")
    generated_html = models.TextField(blank=True, default="")
    error_message = models.TextField(blank=True, default="")
    
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        db_table = "morning_efficiency_logs"
        ordering = ["-created_at"]

    def __str__(self):
        return f"Morning Briefing -> {self.email_sent_to} [{self.email_status}] at {self.created_at}"
