from django.db import models from common.models import ContainerTypeModel, LinesModel, OperationModel # Create your models here. class Booking(models.Model): STATUS_CHOICES = [ ('active', 'Active'), ('finished', 'Finished'), ('canceled', 'Canceled'), ] number = models.CharField(max_length=50, unique=True) vehicles = models.CharField(blank=True, null=True) container_type = models.ForeignKey( ContainerTypeModel, on_delete=models.CASCADE, related_name='booking_container_types', ) container_count = models.IntegerField() container_expedited_count = models.IntegerField(default=0) carrier = models.CharField(max_length=100, blank=True, null=True) line = models.ForeignKey( LinesModel, on_delete=models.CASCADE, related_name='booking_lines', ) visible = models.BooleanField(default=True) is_new = models.BooleanField(default=True) container_number = models.CharField(max_length=11, blank=True, null=True) vehicles_left = models.CharField(blank=True, null=True) created_on = models.DateTimeField(auto_now_add=True) created_by = models.IntegerField() updated_on = models.DateTimeField(auto_now=True) updated_by = models.IntegerField() status = models.CharField( max_length=10, choices=STATUS_CHOICES, default='active' ) @property def containers_left(self): return self.container_count - (self.container_expedited_count or 0) class Meta: app_label = 'booking'