# models.py
from django.db import models


class ProductMaster(models.Model):
    Id = models.AutoField(primary_key=True)
    NickName = models.CharField(max_length=250)
    ChemicalName = models.CharField(max_length=100)
    ChemicalNameId = models.IntegerField(null=True)
    Dilution = models.CharField(max_length=50, null=True, blank=True)
    Density = models.DecimalField(max_digits=10, decimal_places=3, null=True, blank=True)
    Type = models.CharField(max_length=50, null=True, blank=True)
    Packaging = models.CharField(max_length=50, null=True, blank=True)
    CostCenter = models.CharField(max_length=50, null=True, blank=True)
    FullName = models.TextField(null=True, blank=True)
    ArticleCode = models.CharField(max_length=100, null=True, blank=True, unique=True)
    Grade = models.CharField(max_length=100, null=True, blank=True)
    GradeId = models.IntegerField(null=True)
    ProductCategory = models.TextField()
    TariffNumber = models.CharField(max_length=150, null=True, blank=True)

    ProductName = models.CharField(max_length=300, null=True, blank=True)
    DU_FullName = models.TextField(null=True, blank=True)  # Dutch full name
    FR_FullName = models.TextField(null=True, blank=True)  # French full name
    EN_FullName = models.TextField(null=True, blank=True)  # English full name
    UNNo = models.CharField(max_length=100, null=True, blank=True)  # UN Number (unique for each substance)
    HazardClass = models.CharField(max_length=100, null=True, blank=True)  # Hazard classification
    PackingGroup = models.CharField(max_length=100, null=True, blank=True)  # Packing group classification
    TunnelRestrictionCode = models.CharField(max_length=100, null=True, blank=True)  # Tunnel restriction code

    IsADR = models.TextField()

    AlternateArticleCode = models.CharField(max_length=100, null=True, blank=True)

    CreatedBy = models.IntegerField(null=True)
    CreatedAt = models.DateTimeField(auto_now_add=True)
    UpdatedBy = models.IntegerField(null=True, blank=True)
    UpdatedAt = models.DateTimeField(null=True, blank=True)
    IsDeleted = models.BooleanField(default=False)

    class Meta:
        db_table = 'ProductMaster'
        managed = False

    def __str__(self):
        return self.NickName


class PackageMaster(models.Model):
    Id = models.AutoField(primary_key=True)
    product = models.ForeignKey(
        ProductMaster, on_delete=models.SET_NULL, null=True, blank=True, related_name='packings'
    )
    article_code = models.CharField(max_length=500, null=True, blank=True)
    packaged_product = models.CharField(max_length=500, null=True, blank=True)
    kg_per_packaging = models.IntegerField( null=True, blank=True)
    pack_tare_weight = models.IntegerField( null=True, blank=True)
    dimension = models.CharField(max_length=50, null=True, blank=True)
    nos_per_pallet = models.IntegerField(null=True, blank=True)
    pallet_weight = models.IntegerField(null=True, blank=True)

    CreatedBy = models.IntegerField()
    CreatedAt = models.DateTimeField(auto_now_add=True)
    UpdatedBy = models.IntegerField(null=True, blank=True)
    UpdatedAt = models.DateTimeField(null=True, blank=True)
    IsDeleted = models.BooleanField(default=False)

    class Meta:
        db_table = 'PackageMaster'
        managed = False

    def __str__(self):
        return f'{self.product.Id} - {self.product.ProductName}'






