from django.db import models
from shop.models import Product
# Create your models here.

class Order(models.Model):
    first_name=models.CharField(verbose_name='Имя',max_length=50)
    last_name=models.CharField(verbose_name='Фамилия',max_length=50)
    email=models.EmailField(verbose_name='Email')
    address=models.CharField(verbose_name='Адрес',max_length=250)
    postal_code=models.CharField(verbose_name='Почтовый код',max_length=20)
    city=models.CharField(verbose_name='Город',max_length=100)
    created=models.DateTimeField(verbose_name='Создан',auto_now_add=True)
    updated=models.DateTimeField(verbose_name='Обновлён',auto_now=True)
    paid=models.BooleanField(verbose_name='Оплачен',default=False)
    class Meta:
        ordering=('-created',)
        verbose_name='Заказ'
        verbose_name_plural='Заказы'

    def __str__(self):
        return 'Заказ {}'.format(self.id)

    def get_total_cost(self):
        return sum(item.get_cost() for item in self.items.all())


class OrderItem(models.Model):
    order=models.ForeignKey(Order,on_delete=models.CASCADE,related_name='items')
    product=models.ForeignKey(Product,on_delete=models.CASCADE,related_name='order_items')
    price=models.DecimalField(verbose_name='Цена',max_digits=10,decimal_places=2)
    quantity=models.PositiveIntegerField(verbose_name='Количетво',default=1)

    def __str__(self):
        return '{}'.format(self.id)
    def get_cost(self):
        return self.price * self.quantity
