from django.contrib.auth.models import User from django.db import models from phonenumber_field.modelfields import PhoneNumberField class Store(models.Model): name = models.CharField(max_length=128) address = models.CharField(max_length=128) telephone = PhoneNumberField() def __str__(self): return f'{self.name} - {self.address}' class Product(models.Model): name = models.CharField(max_length=128) def __str__(self): return f'{self.name}' class Customer(models.Model): name = models.CharField(max_length=128) address = models.CharField(max_length=128, blank=True) telephone = PhoneNumberField(blank=True) social_media = models.CharField(max_length=128, blank=True) def __str__(self): return f'{self.name}:{self.telephone}' class Order(models.Model): #order_id = models.CharField(max_length=32) customer = models.ForeignKey(Customer, on_delete=models.CASCADE) order_date = models.DateField() delivery_date = models.DateField() store = models.ForeignKey(Store, on_delete=models.CASCADE) order_products = models.ManyToManyField('Product', through='OrderProduct', related_name='+', blank=True) def __str__(self): return f'{self.id}:{self.customer.name}, {self.store}, {self.order_date}, {self.delivery_date}' class OrderProduct(models.Model): order = models.ForeignKey(Order, on_delete=models.CASCADE) product = models.ForeignKey(Product, on_delete=models.CASCADE) #type = models.ForeignKey(Product, on_delete=models.CASCADE) #name = models.CharField(max_length=128) amount = models.FloatField() color1 = models.CharField(max_length=128, blank=True) color2 = models.CharField(max_length=128, blank=True) info = models.CharField(max_length=512, blank=True) def __str__(self): return f'{self.product}'