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


class Contact(models.Model):
    SERVICES = [
        ('quantitative', 'Enquête Quantitative'),
        ('qualitative',  'Enquête Qualitative'),
        ('sondage',      "Sondage d'Opinion"),
        ('recensement',  'Recensements & Panels'),
        ('formation',    'Formation'),
        ('documentaire', 'Recherche Documentaire'),
        ('agricole',     'Enquête Agricole'),
        ('evaluation',   'Suivi & Évaluation'),
        ('transport',    'Ingénierie des Transports'),
        ('autre',        'Autre'),
    ]

    nom          = models.CharField(max_length=100)
    email        = models.EmailField()
    telephone    = models.CharField(max_length=25, blank=True)
    organisation = models.CharField(max_length=150, blank=True)
    service      = models.CharField(max_length=50, choices=SERVICES, blank=True)
    sujet        = models.CharField(max_length=200)
    message      = models.TextField()
    date_envoi   = models.DateTimeField(default=timezone.now)
    lu           = models.BooleanField(default=False)
    repondu      = models.BooleanField(default=False)

    class Meta:
        ordering = ['-date_envoi']
        verbose_name = 'Message de contact'
        verbose_name_plural = 'Messages de contact'

    def __str__(self):
        return f"{self.nom} — {self.sujet}"


class MembreEquipe(models.Model):
    nom        = models.CharField(max_length=100)
    poste      = models.CharField(max_length=150)
    profil     = models.TextField()
    photo      = models.ImageField(upload_to='equipe/', blank=True, null=True)
    experience = models.CharField(max_length=50, blank=True)
    ordre      = models.PositiveIntegerField(default=0)
    actif      = models.BooleanField(default=True)

    class Meta:
        ordering = ['ordre']
        verbose_name = "Membre de l'équipe"
        verbose_name_plural = "Membres de l'équipe"

    def __str__(self):
        return f"{self.nom} — {self.poste}"


class Service(models.Model):
    titre       = models.CharField(max_length=150)
    description = models.TextField()
    icone       = models.CharField(max_length=50, default='fas fa-chart-bar')
    ordre       = models.PositiveIntegerField(default=0)
    actif       = models.BooleanField(default=True)

    class Meta:
        ordering = ['ordre']
        verbose_name = 'Service'

    def __str__(self):
        return self.titre