from django.db import models


class Inquiry(models.Model):
    SERVICE_CHOICES = [
        ('industrial-automation', 'Industrial Automation'),
        ('electrical-solar', 'Electrical & Solar Solutions'),
        ('security-protection', 'Security & Protection Systems'),
        ('power-backup', 'Power Backup Solutions'),
        ('refrigeration', 'Refrigeration Solutions'),
        ('general-electrical', 'General Electrical Works'),
        ('other', 'Other / General inquiry'),
    ]

    SOURCE_CHOICES = [
        ('contact_form', 'Contact form'),
        ('chat', 'Website chat'),
    ]

    name = models.CharField(max_length=120)
    email = models.EmailField()
    phone = models.CharField(max_length=30, blank=True)
    service = models.CharField(max_length=40, choices=SERVICE_CHOICES, default='other')
    message = models.TextField()
    source = models.CharField(max_length=20, choices=SOURCE_CHOICES, default='contact_form')
    created_at = models.DateTimeField(auto_now_add=True)
    is_read = models.BooleanField(default=False)

    class Meta:
        ordering = ['-created_at']
        verbose_name_plural = 'Inquiries'

    def __str__(self):
        return f'{self.name} — {self.get_service_display()} ({self.created_at:%Y-%m-%d})'


class ChatTranscript(models.Model):
    session_key = models.CharField(max_length=64, blank=True, db_index=True)
    role = models.CharField(max_length=16)  # user | assistant
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        ordering = ['created_at']

    def __str__(self):
        return f'{self.role}: {self.content[:60]}'
