# =============================================================
# invoices/models.py — Rēķinu Modelis
# =============================================================

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


class Rekkins(models.Model):

    # ── STATUSA IZVĒLES ───────────────────────────────────────
    STATUS_CHOICES = [
        ('GAIDA',    'Gaida apmaksu'),
        ('APMAKSATS', 'Apmaksāts'),
        ('NOKAVETS', 'Nokavēts'),
        ('ATCELTS',  'Atcelts'),
    ]

    # ── LAUKI ─────────────────────────────────────────────────
    klients = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name='rekkini',
        verbose_name='Klients'
    )

    # Opcjonāla sasaiste ar projektu
    projekts = models.ForeignKey(
        'projects.Projekts',
        on_delete=models.SET_NULL,
        null=True, blank=True,
        related_name='rekkini',
        verbose_name='Projekts'
    )

    numurs = models.CharField(
        max_length=50,
        unique=True,
        verbose_name='Rēķina numurs',
        help_text='Piem: INV-2024-001'
    )

    apraksts = models.TextField(
        blank=True,
        verbose_name='Apraksts / Darbu saraksts'
    )

    summa = models.DecimalField(
        max_digits=10,
        decimal_places=2,
        verbose_name='Summa (EUR)'
    )

    statuss = models.CharField(
        max_length=20,
        choices=STATUS_CHOICES,
        default='GAIDA',
        verbose_name='Statuss'
    )

    izrakstits = models.DateField(
        verbose_name='Izrakstīšanas datums'
    )

    termins = models.DateField(
        null=True, blank=True,
        verbose_name='Apmaksas termiņš'
    )

    apmaksats_datums = models.DateField(
        null=True, blank=True,
        verbose_name='Apmaksas datums'
    )

    pdf_fails = models.FileField(
        upload_to='rekkini_pdf/',
        null=True, blank=True,
        verbose_name='PDF Fails'
    )

    izveidots = models.DateTimeField(auto_now_add=True)
    atjaunots = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"{self.numurs} — {self.klients} — €{self.summa} ({self.statuss})"

    class Meta:
        verbose_name = "Rēķins"
        verbose_name_plural = "Rēķini"
        ordering = ['-izrakstits']  # Jaunākie pirmie
        
        # Pievieno šo invoices/models.py faila beigās

class Abonements(models.Model):
    klients = models.ForeignKey(
        settings.AUTH_USER_MODEL,
        on_delete=models.CASCADE,
        related_name='abonementi',
        verbose_name='Klients'
    )
    projekts = models.ForeignKey(
        'projects.Projekts',
        on_delete=models.SET_NULL,
        null=True, blank=True,
        verbose_name='Projekts'
    )
    summa = models.DecimalField(max_digits=10, decimal_places=2, verbose_name='Ikmēneša summa (EUR)')
    apraksts = models.TextField(verbose_name='Rēķina apraksts (piem: Ikmēneša uzturēšana)')
    izrakstisanas_diena = models.IntegerField(
        default=1, 
        verbose_name='Mēneša diena (1-28)',
        help_text='Kurā datumā katru mēnesi ģenerēt rēķinu?'
    )
    aktivs = models.BooleanField(default=True, verbose_name='Vai abonements ir aktīvs?')
    izveidots = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name = "Abonements"
        verbose_name_plural = "Abonementi"

    def __str__(self):
        return f"{self.klients.email} — €{self.summa} (Diena: {self.izrakstisanas_diena})"
