from django.db import models from django.utils.translation import gettext_lazy as _ class Sale(models.Model): customer = models.CharField(max_length=100) date = models.DateField("Date") phone = models.CharField(max_length=13, null=True, blank=True) description = models.CharField(max_length=255, null=True, blank=True) class SaleLine(models.Model): sale = models.ForeignKey(Sale, on_delete=models.CASCADE) product = models.CharField(max_length=100) quantity = models.IntegerField(null=True) unit_price = models.DecimalField(max_digits=9, decimal_places=2) description = models.CharField(max_length=255, null=True, blank=True) class MeasuringUnits(models.TextChoices): UNIT = 'UNIT', _('Unit') class ProductCategory(models.Model): name = models.CharField(max_length=100, unique=True) def __str__(self): return self.name class Product(models.Model): name = models.CharField(max_length=100, unique=True) price = models.DecimalField(max_digits=9, decimal_places=2) measuring_unit = models.CharField( max_length=20, choices=MeasuringUnits.choices, default=MeasuringUnits.UNIT ) categories = models.ManyToManyField(ProductCategory) def __str__(self): return self.name