"""Guardian model file""" """Third party Django app""" from django.db import models from django.contrib.auth import get_user_model """Import Django app""" from base.constants import GENDERS, TASK_STATUS, PENDING, TASK_POINTS from junior.models import Junior """Add user model""" User = get_user_model() # Create your models here. class Guardian(models.Model): """Guardian model""" user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='guardian_profile', verbose_name='Email') """Contact details""" country_code = models.IntegerField(blank=True, null=True) phone = models.CharField(max_length=31, null=True, blank=True, default=None) country_name = models.CharField(max_length=100, null=True, blank=True, default=None) """Image info""" image = models.URLField(null=True, blank=True, default=None) """Personal info""" family_name = models.CharField(max_length=50, null=True, blank=True, default=None) gender = models.CharField(choices=GENDERS, max_length=15, null=True, blank=True, default=None) dob = models.DateField(max_length=15, null=True, blank=True, default=None) """Profile activity""" is_active = models.BooleanField(default=True) is_verified = models.BooleanField(default=False) is_complete_profile = models.BooleanField(default=False) passcode = models.IntegerField(null=True, blank=True, default=None) """Codes""" guardian_code = models.CharField(max_length=10, null=True, blank=True, default=None) referral_code = models.CharField(max_length=10, null=True, blank=True, default=None) referral_code_used = models.CharField(max_length=10, null=True, blank=True, default=None) """Profile created and updated time""" created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta(object): """ Meta class """ db_table = 'guardians' verbose_name = 'Guardian' def __str__(self): """Return email id""" return f'{self.user}' class JuniorTask(models.Model): """Junior Task details model""" guardian = models.ForeignKey(Guardian, on_delete=models.CASCADE, related_name='guardian', verbose_name='Guardian') """task details""" task_name = models.CharField(max_length=100) task_description = models.CharField(max_length=500) """points of the task""" points = models.IntegerField(default=TASK_POINTS) due_date = models.DateField(auto_now_add=False, null=True, blank=True) """Images of task""" default_image = models.URLField(null=True, blank=True, default=None) image = models.URLField(null=True, blank=True, default=None) """associated junior with the task""" junior = models.ForeignKey(Junior, on_delete=models.CASCADE, related_name='junior', verbose_name='Junior') """task status""" task_status = models.CharField(choices=TASK_STATUS, max_length=15, default=PENDING) """task stage""" is_active = models.BooleanField(default=True) is_approved = models.BooleanField(default=False) """Profile created and updated time""" created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) class Meta(object): """ Meta class """ db_table = 'junior_task' verbose_name = 'Junior Task' def __str__(self): """Return email id""" return f'{self.task_name}'