from django.db import models class Parent(models.Model): project_num = models.CharField(max_length=32, blank=True) name = models.CharField(max_length=256) def __str__(self): return self.name class Project(models.Model): parent = models.ForeignKey( Parent, on_delete=models.CASCADE, null=True ) name = models.CharField(max_length=256) def __str__(self): return self.name class Task(models.Model): project = models.ForeignKey(Project, on_delete=models.CASCADE) date = models.DateField(null=False) duration = models.IntegerField(null=False, default=0) name = models.CharField(max_length=512, default="") class Meta: constraints = [ models.UniqueConstraint(fields=["date", "project", "name"], name="unique_daily_task") ] class Clocking(models.Model): date = models.DateField() in_am = models.TimeField(null=True, default=None) out_am = models.TimeField(null=True, default=None) in_pm = models.TimeField(null=True, default=None) out_pm = models.TimeField(null=True, default=None) remote = models.TimeField(null=True, default=None)