from django.db import models
from django.utils import timezone

class ContactMessage(models.Model):
    STATUS = (
        ('unread', 'Unread'),
        ('read', 'Read'),
        ('replied', 'Replied'),
    )
    
    # Sender Information
    name = models.CharField(max_length=200)
    email = models.EmailField()
    phone = models.CharField(max_length=20, blank=True)
    subject = models.CharField(max_length=300)
    message = models.TextField()
    
    # Meta
    status = models.CharField(max_length=20, choices=STATUS, default='unread')
    replied = models.BooleanField(default=False)
    replied_at = models.DateTimeField(blank=True, null=True)
    reply_message = models.TextField(blank=True)
    
    # Timestamps
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    read_at = models.DateTimeField(blank=True, null=True)
    
    # IP and User Agent (optional)
    ip_address = models.GenericIPAddressField(blank=True, null=True)
    user_agent = models.TextField(blank=True)
    
    def __str__(self):
        return f"{self.name} - {self.subject}"
    
    def mark_as_read(self):
        self.status = 'read'
        self.read_at = timezone.now()
        self.save()
    
    def mark_as_replied(self):
        self.status = 'replied'
        self.replied = True
        self.replied_at = timezone.now()
        self.save()
    
    class Meta:
        ordering = ['-created_at']
        verbose_name_plural = "Contact Messages"