from django.db import models
from basic.models import Language,TokenType,ChildType,Gender
# Create your models here.

# Start Parent Profile

#Parent

class Parent(models.Model):
    phone = models.TextField()
    password = models.TextField(default='')
    createdDate = models.DateTimeField()
    updatedDate = models.DateTimeField()
    languageId = models.ForeignKey(
        Language, on_delete=models.CASCADE, related_name="language_parent"
    )

#Parent Detail

class ParentDetail(models.Model):
    firstName = models.TextField(default='')
    lastName = models.TextField(default='')
    email = models.TextField()
    createdDate = models.DateTimeField()
    updatedDate = models.DateTimeField()
    parentId = models.OneToOneField(
        Parent,
        on_delete=models.CASCADE,
        related_name="parent_parentdetail",
        primary_key=True,
    )

#Parent Token

class ParentToken(models.Model):
    token = models.TextField()
    createdDate = models.DateTimeField()
    updatedDate = models.DateTimeField()
    tokenTypeId = models.ForeignKey(
        TokenType, on_delete=models.CASCADE, related_name="tokentype_parenttoken"
    )
    parentId = models.OneToOneField(
        Parent,
        on_delete=models.CASCADE,
        related_name="parent_parenttoken",
        primary_key=True,
    )

#Emergency Contact

class EmergencyContact(models.Model):
    fullName = models.TextField()
    phone = models.TextField()
    createdDate = models.DateTimeField()
    updatedDate = models.DateTimeField()
    parentId = models.ForeignKey(
        Parent,
        on_delete=models.CASCADE,
        related_name="parent_emergencycontact",
    )

#Child

class Child(models.Model):
    isTryingToBePregnant = models.BooleanField(default=False)
    isSelected = models.BooleanField(default=False)
    dateOfBirth = models.DateTimeField()
    name = models.TextField(default='',blank=True,null=True)
    weight = models.FloatField(default=0)
    length = models.FloatField(default=0)
    head = models.FloatField(default=0)
    createdDate = models.DateTimeField()
    updatedDate = models.DateTimeField()
    childTypeId = models.ForeignKey(
        ChildType, on_delete=models.CASCADE, related_name="childtype_child",
        null=True
    )
    genderId = models.ForeignKey(
        Gender, on_delete=models.CASCADE, related_name="gender_child",
    )
    parentId = models.ForeignKey(
        Parent,
        on_delete=models.CASCADE,
        related_name="parent_child",
    )

