# =============================================================
# pieteikumi/models.py — Jauna Projekta Pieteikumu Modelis
# =============================================================

from django.db import models
from django.conf import settings


class Pieteikums(models.Model):

    STATUS_CHOICES = [
        ('JAUNS',       'Jauns — gaida izskatīšanu'),
        ('IZSKATISANA', 'Izskatīšanā'),
        ('APSTIPRINATS','Apstiprināts'),
        ('NORAIDS',     'Noraidīts'),
    ]

    TIPS_CHOICES = [
        ('WEB',          'Web izstrāde'),
        ('AI_BOTS',      'AI Čatbots / Asistents'),
        ('AUTOMATIZACIJA','Biznesa automatizācija'),
        ('MOBILAIS',     'Mobilā aplikācija'),
        ('CITS',         'Cits'),
    ]

    # ── Iesniedzējs ───────────────────────────────────────────
    iesniedzejs = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name='pieteikumi',
        verbose_name='Iesniedzējs'
    )

    # ── Pieteikuma dati ───────────────────────────────────────
    nosaukums = models.CharField(
        max_length=200,
        verbose_name='Projekta nosaukums / īss apraksts'
    )

    tips = models.CharField(
        max_length=20,
        choices=TIPS_CHOICES,
        default='CITS',
        verbose_name='Projekta tips'
    )

    apraksts = models.TextField(
        verbose_name='Detalizēts apraksts',
        help_text='Ko vēlaties sasniegt? Kādas funkcijas nepieciešamas?'
    )

    budzets = models.CharField(
        max_length=100,
        blank=True,
        verbose_name='Aptuvens budžets',
        help_text='Piem: €500–€1000, vai "Nav skaidrs"'
    )

    termins = models.CharField(
        max_length=100,
        blank=True,
        verbose_name='Vēlamais termiņš',
        help_text='Piem: "1 mēnesis", "Pēc iespējas ātrāk"'
    )

    # ── Statuss & laiki ────────────────────────────────────────
    statuss = models.CharField(
        max_length=20,
        choices=STATUS_CHOICES,
        default='JAUNS',
        verbose_name='Statuss'
    )

    admin_komentars = models.TextField(
        blank=True,
        verbose_name='Admina komentārs',
        help_text='Redzams klientam — atbilde uz pieteikumu'
    )

    izveidots = models.DateTimeField(auto_now_add=True)
    atjaunots = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"#{self.pk} — {self.nosaukums} ({self.iesniedzejs})"

    class Meta:
        verbose_name        = "Pieteikums"
        verbose_name_plural = "Pieteikumi"
        ordering            = ['-izveidots']  # Jaunākie pirmie
        
        # =============================================================
# MAILBOX (SAZIŅAS) MODELIS
# =============================================================
class Message(models.Model):
    # Klients, kura sarakstei (pastkastei) šī ziņa pieder
    client = models.ForeignKey(
        settings.AUTH_USER_MODEL, 
        on_delete=models.CASCADE, 
        related_name='client_messages',
        verbose_name="Klients"
    )
    
    # Kurš fiziski uzrakstīja šo ziņu (Klients vai Admin)
    sender = models.ForeignKey(
        settings.AUTH_USER_MODEL, 
        on_delete=models.CASCADE, 
        related_name='sent_messages',
        verbose_name="Sūtītājs"
    )
    
    content = models.TextField(verbose_name="Ziņas saturs")
    created_at = models.DateTimeField(auto_now_add=True, verbose_name="Izveidots")

    class Meta:
        ordering = ['created_at'] # Sakārtojam no vecākās uz jaunāko
        verbose_name = "Ziņa"
        verbose_name_plural = "Atbalsta Sarakste (Mailbox)"

    def __str__(self):
        return f"Ziņa no {self.sender.email} ({self.created_at.strftime('%Y-%m-%d %H:%M')})"
