from django.db import models class BoxType(models.Model): """A type of storage box with specific dimensions.""" name = models.CharField(max_length=255) width = models.PositiveIntegerField(help_text='Width in millimeters') height = models.PositiveIntegerField(help_text='Height in millimeters') length = models.PositiveIntegerField(help_text='Length in millimeters') class Meta: ordering = ['name'] def __str__(self): return self.name class Box(models.Model): """A storage box in the lab.""" id = models.CharField( max_length=10, primary_key=True, help_text='Alphanumeric identifier (max 10 characters)' ) box_type = models.ForeignKey( BoxType, on_delete=models.PROTECT, related_name='boxes' ) class Meta: verbose_name_plural = 'boxes' def __str__(self): return self.id