# -*- coding: utf-8 -*-
from django.db import models

import uuid
from datetime import datetime

from management.models import Vendor, Good
from project.models import Project

# Create your models here.

class ProcurementItem(models.Model):
    id = models.CharField(max_length=40 ,primary_key=True, default=uuid.uuid4, editable=False)
    procurement = models.ForeignKey('Procurement', on_delete=models.SET_NULL, null=True, verbose_name='Замовлення')
    good = models.ForeignKey(Good, on_delete=models.CASCADE, null=True, verbose_name='Товар')
    quantity = models.FloatField(verbose_name='Кількість')
    created_by = models.CharField(max_length=200, verbose_name='Користувач', default='System')

    def __str__(self):
        return f"{self.good} - {self.quantity} шт."

    class Meta:
        verbose_name_plural = 'Товари в замовлення'


class Procurement(models.Model):
    id = models.CharField(max_length=40 ,primary_key=True, default=uuid.uuid4, editable=False)
    number = models.CharField(max_length=200, verbose_name='Номер замовлення')
    vendor =  models.ForeignKey(Vendor, on_delete=models.CASCADE, null=True, verbose_name='Постачальник')
    project = models.ForeignKey(Project, on_delete=models.CASCADE, null=True, verbose_name='Обьєкт')
    procurement_item = models.ManyToManyField(ProcurementItem,  related_name='procurement_item', verbose_name='Товари')
    comment = models.TextField(blank=True, null=True, verbose_name='Коментар')
    created_at = models.DateTimeField(auto_now_add=True, verbose_name='Дата створення')
    created_by = models.CharField(max_length=200, verbose_name='Користувач', default='System')

    class Meta:
        verbose_name = 'Замовлення'
        verbose_name_plural = 'Замовлення'
    
    def __str__(self):
        """
        String for representing the Model object (in Admin site etc.)
        """
        return self.number