57 lines
1.8 KiB
Plaintext
57 lines
1.8 KiB
Plaintext
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}'
|
|
|