from django.db import models
from django.contrib.auth.models import User
from django.contrib.auth.models import AbstractUser
from django.contrib.auth.base_user import BaseUserManager
from django.utils.text import slugify

# Create your models here.
#user  = models.ForeignKey(User, on_delete=models.CASCADE,blank=True, null=True,related_name="project_user")

class Userall(models.TextChoices):
    EMPLOYEE = '1'
    CLIENT = '2'

class CustomUserManager(BaseUserManager):
    """Define a model manager for User model with no username field."""

    def _create_user(self, email, password=None, **extra_fields):
        """Create and save a User with the given email and password."""
        if not email:
            raise ValueError('The given email must be set')
        email = self.normalize_email(email)
        user = self.model(email=email, **extra_fields)
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_user(self, email, password=None, **extra_fields):
        extra_fields.setdefault('is_staff', False)
        extra_fields.setdefault('is_superuser', False)
        return self._create_user(email, password, **extra_fields)

    def create_superuser(self, email, password=None, **extra_fields):
        """Create and save a SuperUser with the given email and password."""
        extra_fields.setdefault('is_staff', True)
        extra_fields.setdefault('is_superuser', True)

        if extra_fields.get('is_staff') is not True:
            raise ValueError('Superuser must have is_staff=True.')
        if extra_fields.get('is_superuser') is not True:
            raise ValueError('Superuser must have is_superuser=True.')

        return self._create_user(email, password, **extra_fields)


class User(AbstractUser):
    username = None
    USERNAME_FIELD = 'email'
    email = models.EmailField('Email address', unique=True)
    phone = models.CharField('Phone Number',max_length=10,blank=True, null=True)
    location = models.CharField('Location',max_length=100,blank=True, null=True)
    company = models.CharField('Company Name',max_length=300,blank=True, null=True)
    user_type = models.CharField(max_length=8,choices=Userall.choices,blank=True,null=True)
    img = models.FileField(upload_to='media',blank=True,null=True)
    token = models.CharField(max_length=255,blank=True,null=True)
    REQUIRED_FIELDS = []
    
    objects = CustomUserManager()
    
class ClientLocation(models.Model):
    id=models.AutoField(primary_key=True)
    client_id=models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='clientlocation')
    cl_location = models.TextField()
    date = models.DateTimeField('Date',auto_now_add=True)
    
class Alert(models.Model):
    msg = models.CharField(max_length=300,blank=True,null=True)
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='alert_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='alert_client')
    status = models.CharField(max_length=6,blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    
class Product(models.Model):
    pname = models.CharField(max_length=50)
    image = models.FileField(upload_to='media',blank=True,null=True)
    type = models.CharField(max_length=14, blank=True, null=True)
    date = models.DateTimeField('Date',auto_now_add=True)
    
    def __str__(self):
        return self.pname
    
class ProductScanUser(models.Model):
    psu_modelno = models.CharField(max_length=100,blank=True,null=True)
    product_detail_id = models.ForeignKey(Product,on_delete=models.CASCADE,blank=True,null=True,related_name='product_id')
    psu_emp_id = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='emp_id')
    psu_latitude = models.CharField(max_length=100,blank=True, null=True)
    psu_longitude = models.CharField(max_length=100,blank=True, null=True)
    psu_createdate = models.DateTimeField('Date',auto_now_add=True)
    
class SiteModelProduct(models.Model):
    modelno = models.CharField(unique=True, max_length=24,blank=True,null=True,db_index=True)
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,db_index=True,related_name='smp_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='smp_client')
    unit = models.CharField(max_length=200,blank=True, null=True)
    pid = models.ForeignKey(Product,on_delete=models.CASCADE,blank=True,null=True,db_index=True,related_name='smp_product_id')
    location = models.CharField(max_length=100,blank=True, null=True)
    status = models.CharField(max_length=6,blank=True, null=True)
    disable = models.BooleanField(default=False)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    
class FireExtinguisherHPCL(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,db_index=True,related_name='FireExtinguisherHPCL_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,db_index=True,related_name='FireExtinguisherHPCL_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='FireExtinguisherHPCL_client')
    FEType = models.CharField(max_length=255,blank=True, null=True)
    extgno = models.CharField(max_length=255,blank=True, null=True)
    make = models.CharField(max_length=255,blank=True, null=True)
    cylinderno = models.CharField(max_length=255,blank=True, null=True)
    mfgyear = models.DateField('Date',auto_now_add=False,blank=True, null=True)
    dateofht = models.DateField('Date',auto_now_add=False,blank=True, null=True)
    duedateht = models.DateField('Date',auto_now_add=False,blank=True, null=True)
    dateofoverhauling = models.DateField('Date',auto_now_add=False,blank=True, null=True)
    duedateoverhauling = models.DateField('Date',auto_now_add=False,blank=True, null=True)
    duedatediscard = models.DateField('Date',auto_now_add=False,blank=True, null=True)
    certificateno = models.CharField(max_length=255,blank=True, null=True)
    capacity = models.FloatField(max_length=255,blank=True, null=True)
    engg_location = models.TextField(blank=True, null=True)
    engg_image = models.FileField(upload_to='media',blank=True,null=True)
    engg_comment = models.TextField(blank=True, null=True)
    client_location = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    client_comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    createdate = models.DateTimeField('Engg Date',auto_now_add=True)
    updatedate = models.DateTimeField('Client Date',auto_now=True)

    # class Meta:
    #     unique_together = ('createdate','smpid__modelno',)

class FireHydrantHPCL(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,db_index=True,related_name='FireHydrantHPCL_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,db_index=True,related_name='FireHydrantHPCL_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='FireHydrantHPCL_client')
    hydrantno = models.CharField(max_length=255,blank=True, null=True)
    size3 = models.CharField(max_length=255,blank=True, null=True)
    size4 = models.CharField(max_length=255,blank=True, null=True)
    size3s = models.CharField(max_length=255,blank=True, null=True)
    monitor = models.CharField(max_length=255,blank=True, null=True)
    leftsidelvgv = models.CharField(max_length=255,blank=True, null=True)
    rightsidelvgv = models.CharField(max_length=255,blank=True, null=True)
    hydrantblockvalve = models.CharField(max_length=255,blank=True, null=True)
    offsiteunitarea = models.CharField(max_length=255,blank=True, null=True)
    engg_location = models.TextField(blank=True, null=True)
    engg_image = models.FileField(upload_to='media',blank=True,null=True)
    engg_comment = models.TextField(blank=True, null=True)
    client_location = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    client_comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)
    
    # class Meta:
    #     unique_together = ('createdate','smpid__modelno',)


class ControlValve(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='control_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='control_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='control_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    type_of_valve = models.CharField(max_length=100,blank=True, null=True)
    moc = models.CharField(max_length=50,blank=True, null=True)
    size = models.CharField(max_length=50,blank=True, null=True)
    spindle = models.CharField(max_length=50,blank=True, null=True)
    wheel_lever = models.CharField(max_length=50,blank=True, null=True)
    gasket = models.CharField(max_length=50,blank=True, null=True)
    gland_packing = models.CharField(max_length=50,blank=True, null=True)
    drain_valve = models.CharField(max_length=50,blank=True, null=True)
    pressure_guage = models.CharField(max_length=50,blank=True, null=True)
    pressure = models.CharField(max_length=50,blank=True, null=True)
    flow = models.TextField(blank=True, null=True)
    test_valve = models.CharField(max_length=50,blank=True, null=True)
    soleniod_valve_actuator = models.CharField(max_length=50,blank=True, null=True)
    internal_disc_flap = models.CharField(max_length=50,blank=True, null=True)
    gong_bell = models.CharField(max_length=11,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class ControlValveHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='controlhis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='controlhis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='controlhis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    type_of_valve = models.CharField(max_length=100,blank=True, null=True)
    moc = models.CharField(max_length=50,blank=True, null=True)
    size = models.CharField(max_length=50,blank=True, null=True)
    spindle = models.CharField(max_length=50,blank=True, null=True)
    wheel_lever = models.CharField(max_length=50,blank=True, null=True)
    gasket = models.CharField(max_length=50,blank=True, null=True)
    gland_packing = models.CharField(max_length=50,blank=True, null=True)
    drain_valve = models.CharField(max_length=50,blank=True, null=True)
    pressure_guage = models.CharField(max_length=50,blank=True, null=True)
    pressure = models.CharField(max_length=50,blank=True, null=True)
    flow = models.TextField(blank=True, null=True)
    test_valve = models.CharField(max_length=50,blank=True, null=True)
    soleniod_valve_actuator = models.CharField(max_length=50,blank=True, null=True)
    internal_disc_flap = models.CharField(max_length=50,blank=True, null=True)
    gong_bell = models.CharField(max_length=11,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)

        
class FireBucket(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firebucket_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firebucket_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firebucket_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    observation = models.TextField(blank=True, null=True)
    action = models.CharField(max_length=124,blank=True, null=True)
    numberoffirebuckets = models.CharField(max_length=50,blank=True, null=True)
    buckets = models.CharField(max_length=50,blank=True, null=True)
    stand = models.CharField(max_length=50,blank=True, null=True)
    sand = models.CharField(max_length=50,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FireBucketHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firebuckethis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firebuckethis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firebuckethis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    observation = models.TextField(blank=True, null=True)
    action = models.CharField(max_length=124,blank=True, null=True)
    numberoffirebuckets = models.CharField(db_column='numberofFirebuckets', max_length=50,blank=True, null=True)  # Field name made lowercase.
    buckets = models.CharField(max_length=50,blank=True, null=True)
    stand = models.CharField(max_length=50,blank=True, null=True)
    sand = models.CharField(max_length=50,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FireDetection(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetection_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetection_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetection_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    specs_of_panel = models.CharField(max_length=100,blank=True, null=True)
    type_of_system = models.CharField(max_length=50,blank=True, null=True)
    make = models.CharField(max_length=50,blank=True, null=True)
    loops_zone = models.CharField(max_length=50,blank=True, null=True)
    repeater_panel = models.CharField(max_length=50,blank=True, null=True)
    isolator_module = models.CharField(max_length=50,blank=True, null=True)
    heat_detector = models.CharField(max_length=50,blank=True, null=True)
    flame_detector = models.CharField(max_length=50,blank=True, null=True)
    smoke_detector = models.CharField(max_length=50,blank=True, null=True)
    multi_detector = models.CharField(max_length=50,blank=True, null=True)
    gas_detector = models.TextField(blank=True, null=True)
    beam_detector = models.CharField(max_length=50,blank=True, null=True)
    manual_call_point = models.CharField(max_length=50,blank=True, null=True)
    hooter_cum_sounder = models.CharField(max_length=50,blank=True, null=True)
    zone_monitor_module = models.CharField(max_length=50,blank=True, null=True)
    monitor_module = models.CharField(max_length=50,blank=True, null=True)
    control_module = models.CharField(max_length=50,blank=True, null=True)
    power_supply_unit = models.CharField(max_length=50,blank=True, null=True)
    zener_barrier = models.CharField(max_length=50,blank=True, null=True)
    siren = models.CharField(max_length=50,blank=True, null=True)
    cables = models.CharField(max_length=50,blank=True, null=True)
    special_detector = models.CharField(max_length=50,blank=True, null=True)
    battery_backup = models.CharField(max_length=50,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FireDetectionHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetectionhis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetectionhis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetectionhis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    specs_of_panel = models.CharField(max_length=100,blank=True, null=True)
    type_of_system = models.CharField(max_length=50,blank=True, null=True)
    make = models.CharField(max_length=50,blank=True, null=True)
    loops_zone = models.CharField(max_length=50,blank=True, null=True)
    repeater_panel = models.CharField(max_length=50,blank=True, null=True)
    isolator_module = models.CharField(max_length=50,blank=True, null=True)
    heat_detector = models.CharField(max_length=50,blank=True, null=True)
    flame_detector = models.CharField(max_length=50,blank=True, null=True)
    smoke_detector = models.CharField(max_length=50,blank=True, null=True)
    multi_detector = models.CharField(max_length=50,blank=True, null=True)
    gas_detector = models.TextField(blank=True, null=True)
    beam_detector = models.CharField(max_length=50,blank=True, null=True)
    manual_call_point = models.CharField(max_length=50,blank=True, null=True)
    hooter_cum_sounder = models.CharField(max_length=50,blank=True, null=True)
    zone_monitor_module = models.CharField(max_length=50,blank=True, null=True)
    monitor_module = models.CharField(max_length=50,blank=True, null=True)
    control_module = models.CharField(max_length=50,blank=True, null=True)
    power_supply_unit = models.CharField(max_length=50,blank=True, null=True)
    zener_barrier = models.CharField(max_length=50,blank=True, null=True)
    siren = models.CharField(max_length=50,blank=True, null=True)
    cables = models.CharField(max_length=50,blank=True, null=True)
    special_detector = models.CharField(max_length=50,blank=True, null=True)
    battery_backup = models.CharField(max_length=50,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FireDetectionService(models.Model):
    fire_detection_id = models.ForeignKey(FireDetectionHistory,on_delete=models.CASCADE,blank=True,null=True,related_name='firedetectionservice_fireid')
    details = models.TextField(blank=True, null=True)
    details_lable = models.TextField(blank=True, null=True)
    service_location = models.TextField(blank=True, null=True)
    qty_required = models.TextField(blank=True, null=True)
    service_remarks = models.TextField(blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FireHydrant(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firehydrant_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firehydrant_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firehydrant_client')
    sparepartrequired = models.CharField(max_length=500,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    hosepipe = models.CharField(max_length=50,blank=True, null=True)
    hydrantvalve = models.CharField(max_length=50,blank=True, null=True)
    blackcap = models.CharField(max_length=50,blank=True, null=True)
    shuntwheel = models.CharField(max_length=50,blank=True, null=True)
    hosebox = models.CharField(max_length=50,blank=True, null=True)
    hoses = models.CharField(max_length=50,blank=True, null=True)
    glasses = models.CharField(max_length=50,blank=True, null=True)
    branchpipe = models.CharField(max_length=50,blank=True, null=True)
    fire_hydrant_keys = models.CharField(max_length=50,blank=True, null=True)
    glasshammer = models.CharField(max_length=50,blank=True, null=True)
    observation = models.TextField(blank=True, null=True)
    action = models.CharField(max_length=124,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FireHydrantHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firehydranthis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firehydranthis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firehydranthis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    hosepipe = models.CharField(max_length=50,blank=True, null=True)
    hydrantvalve = models.CharField(max_length=50,blank=True, null=True)
    blackcap = models.CharField(max_length=50,blank=True, null=True)
    shuntwheel = models.CharField(max_length=50,blank=True, null=True)
    hosebox = models.CharField(max_length=50,blank=True, null=True)
    hoses = models.CharField(max_length=50,blank=True, null=True)
    glasses = models.CharField(max_length=50,blank=True, null=True)
    branchpipe = models.CharField(max_length=50,blank=True, null=True)
    fire_hydrant_keys = models.CharField(max_length=50,blank=True, null=True)
    glasshammer = models.CharField(max_length=50,blank=True, null=True)
    observation = models.TextField(blank=True, null=True)
    action = models.CharField(max_length=124,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FirePump(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firepump_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firepump_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firepump_client')
    sparepartrequired = models.CharField(max_length=10, blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    hp = models.TextField(blank=True, null=True)
    head = models.CharField(max_length=124, blank=True, null=True)
    kw = models.CharField(max_length=50, blank=True, null=True)
    pumpno = models.CharField(max_length=50, blank=True, null=True)
    pumptype = models.CharField(max_length=55, blank=True, null=True)
    rpm = models.CharField(max_length=50, blank=True, null=True)
    motorno = models.CharField(max_length=50, blank=True, null=True)
    make = models.CharField(max_length=50, blank=True, null=True)
    pumptypeno = models.CharField(max_length=50, blank=True, null=True)
    systempressure = models.CharField(max_length=50, blank=True, null=True)
    systemflow =  models.CharField(max_length=50, blank=True, null=True)
    systemwatertank =  models.CharField(max_length=50, blank=True, null=True)
    systemhelth =  models.CharField(max_length=50, blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)




class FirePumpHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='firepumphis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firepumphis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='firepumphis_client')
    sparepartrequired = models.CharField(max_length=10, blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    hp = models.TextField(blank=True, null=True)
    head = models.CharField(max_length=124, blank=True, null=True)
    kw = models.CharField(max_length=50, blank=True, null=True)
    pumpno = models.CharField(max_length=50, blank=True, null=True)
    pumptype = models.CharField(max_length=55, blank=True, null=True)
    rpm = models.CharField(max_length=50, blank=True, null=True)
    motorno = models.CharField(max_length=50, blank=True, null=True)
    make = models.CharField(max_length=50, blank=True, null=True)
    pumptypeno = models.CharField(max_length=50, blank=True, null=True)
    systempressure = models.CharField(max_length=50, blank=True, null=True)
    systemflow =  models.CharField(max_length=50, blank=True, null=True)
    systemwatertank =  models.CharField(max_length=50, blank=True, null=True)
    systemhelth =  models.CharField(max_length=50, blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class FirePumpService(models.Model):
    fire_pump_id = models.ForeignKey(FirePumpHistory,on_delete=models.CASCADE,blank=True,null=True,related_name='firepumpservice_firepumpid')
    details = models.TextField(blank=True, null=True)
    details_lable = models.TextField(blank=True, null=True)
    service_location = models.TextField(blank=True,null=True)
    qty_required = models.TextField(blank=True, null=True)
    service_remarks = models.TextField(blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)




class HoseReel(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='hosereel_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='hosereel_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='hosereel_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    observation = models.TextField(blank=True, null=True)
    action = models.CharField(max_length=124,blank=True, null=True)
    hosereel = models.CharField(max_length=50,blank=True, null=True)
    shutoffnozzel = models.CharField(max_length=50,blank=True, null=True)
    ballvalve = models.CharField(max_length=50,blank=True, null=True)
    jubliclip = models.CharField(max_length=50,blank=True, null=True)
    connectingrubberhose = models.CharField(max_length=50,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class HoseReelHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='hosereelhis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='hosereelhis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='hosereelhis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    observation = models.TextField(blank=True, null=True)
    action = models.CharField(max_length=124,blank=True, null=True)
    hosereel = models.CharField(max_length=50,blank=True, null=True)
    shutoffnozzel = models.CharField(max_length=50,blank=True, null=True)
    ballvalve = models.CharField(max_length=50,blank=True, null=True)
    jubliclip = models.CharField(max_length=50,blank=True, null=True)
    connectingrubberhose = models.CharField(max_length=50,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class PortableMonitor(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='portablem_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablem_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablem_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    type_of_monitor = models.CharField(max_length=100,blank=True, null=True)
    moc_body = models.CharField(max_length=50,blank=True, null=True)
    rotation = models.CharField(max_length=50,blank=True, null=True)
    capacity = models.CharField(max_length=50)
    flow = models.CharField(max_length=50,blank=True, null=True)
    pressure = models.CharField(max_length=50,blank=True, null=True)
    size = models.CharField(max_length=50,blank=True, null=True)
    throw_range = models.CharField(max_length=50,blank=True, null=True)
    foam_tank = models.CharField(max_length=50,blank=True, null=True)
    foam_inductor = models.CharField(max_length=50,blank=True, null=True)
    handle_rotation_wheel = models.TextField(blank=True, null=True)
    foam_inductor_pipe = models.CharField(max_length=50,blank=True, null=True)
    nozzle_type = models.CharField(max_length=50,blank=True, null=True)
    operation_manual_electric = models.CharField(max_length=50,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)


class PortableMonitorHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemhis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemhis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemhis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    type_of_monitor = models.CharField(max_length=100,blank=True, null=True)
    moc_body = models.CharField(max_length=50,blank=True, null=True)
    rotation = models.CharField(max_length=50,blank=True, null=True)
    capacity = models.CharField(max_length=50,blank=True, null=True)
    flow = models.CharField(max_length=50,blank=True, null=True)
    pressure = models.CharField(max_length=50,blank=True, null=True)
    size = models.CharField(max_length=50,blank=True, null=True)
    throw_range = models.CharField(max_length=50,blank=True, null=True)
    foam_tank = models.CharField(max_length=50,blank=True, null=True)
    foam_inductor = models.CharField(max_length=50,blank=True, null=True)
    handle_rotation_wheel = models.TextField(blank=True, null=True)
    foam_inductor_pipe = models.CharField(max_length=50,blank=True, null=True)
    nozzle_type = models.CharField(max_length=50,blank=True, null=True)
    operation_manual_electric = models.CharField(max_length=50,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True,null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True,null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)




class SiteModelProductDetail(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemproductid_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemproductid_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemproductid_client')
    sparepartitemrequired = models.TextField(blank=True, null=True)
    #feno = models.CharField(max_length=55,blank=True, null=True)
    fetype = models.CharField(max_length=55,blank=True, null=True)
    capacity = models.CharField(max_length=24,blank=True, null=True)
    mfgyear = models.TextField(blank=True, null=True)  # This field type is a guess.
    emptycylinderpressure = models.CharField(max_length=24,blank=True, null=True)
    fullcylinderpressure = models.CharField(max_length=24,blank=True, null=True)
    netpressure = models.CharField(max_length=24,blank=True, null=True)
    lastdaterefilling = models.DateField(blank=True, null=True)
    duedaterefiiling = models.DateField(blank=True, null=True)
    lastdatehpt = models.DateField(blank=True, null=True)
    duedatehpt = models.DateField(blank=True, null=True)
    sparepartrequired = models.CharField(max_length=124,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True, null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class SiteModelProductDetailHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemproducthis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemproducthis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='portablemproducthis_client')
    sparepartitemrequired = models.TextField(blank=True, null=True)
    feno = models.CharField(max_length=16,blank=True, null=True)
    fetype = models.CharField(max_length=16,blank=True, null=True)
    capacity = models.CharField(max_length=24,blank=True, null=True)
    mfgyear = models.TextField(blank=True, null=True)  # This field type is a guess.
    emptycylinderpressure = models.CharField(max_length=24,blank=True, null=True)
    fullcylinderpressure = models.CharField(max_length=24,blank=True, null=True)
    netpressure = models.CharField(max_length=24,blank=True, null=True)
    lastdaterefilling = models.DateField(blank=True, null=True)
    duedaterefiiling = models.DateField(blank=True, null=True)
    lastdatehpt = models.DateField(blank=True, null=True)
    duedatehpt = models.DateField(blank=True, null=True)
    sparepartrequired = models.CharField(max_length=124,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True, null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now=True)



class SuppresionSystem(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystem_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystem_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystem_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    specs_of_supression_system = models.CharField(max_length=100,blank=True, null=True)
    specs_of_panel_and_make = models.CharField(max_length=100,blank=True, null=True)
    type_of_system = models.CharField(max_length=50,blank=True, null=True)
    make = models.CharField(max_length=50,blank=True, null=True)
    loops_zone = models.CharField(max_length=50,blank=True, null=True)
    model_no_suppresion = models.CharField(max_length=50,blank=True, null=True)
    capacity_of_clyinder = models.CharField(max_length=50,blank=True, null=True)
    no_of_cylinders = models.CharField(max_length=50,blank=True, null=True)
    empty_weight = models.CharField(max_length=50,blank=True, null=True)
    full_weight = models.CharField(max_length=50,blank=True, null=True)
    suppression_gas_filled = models.CharField(max_length=50,blank=True, null=True)
    pressure_gauage_reading = models.TextField(blank=True, null=True)
    electromagnetic_actuator = models.CharField(max_length=50,blank=True, null=True)
    pneumatic_actuator = models.CharField(max_length=50,blank=True, null=True)
    pressure_supervisory_switch = models.CharField(max_length=250,blank=True, null=True)
    flexible_discharge_hose = models.CharField(max_length=50,blank=True, null=True)
    flexible_actuator_hose = models.CharField(max_length=50,blank=True, null=True)
    nozzles_suppresion = models.CharField(max_length=50,blank=True, null=True)
    abort_switch = models.CharField(max_length=50,blank=True, null=True)
    heat_detector = models.CharField(max_length=50,blank=True, null=True)
    manifold = models.CharField(max_length=50,blank=True, null=True)
    piping = models.CharField(max_length=50,blank=True, null=True)
    flame_detector = models.CharField(max_length=50,blank=True, null=True)
    smoke_detector = models.CharField(max_length=50,blank=True, null=True)
    multi_detector = models.CharField(max_length=50,blank=True, null=True)
    gas_detector = models.CharField(max_length=50,blank=True, null=True)
    vesda_detector_panel = models.CharField(max_length=50,blank=True, null=True)
    manual_call_point = models.CharField(max_length=50,blank=True, null=True)
    hooter_cum_sounder = models.CharField(max_length=50,blank=True, null=True)
    zone_monitor_module = models.CharField(max_length=50,blank=True, null=True)
    monitor_module = models.CharField(max_length=50,blank=True, null=True)
    control_module = models.CharField(max_length=50,blank=True, null=True)
    power_supply_unit = models.CharField(max_length=50,blank=True, null=True)
    manual_gas_release_switch = models.CharField(max_length=250,blank=True, null=True)
    siren = models.CharField(max_length=50,blank=True, null=True)
    cables = models.CharField(max_length=50,blank=True, null=True)
    special_detector = models.CharField(max_length=50,blank=True, null=True)
    battery_backup = models.CharField(max_length=50,blank=True, null=True)
    p_location = models.TextField(blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True, null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now_add=True)



class SuppresionSystemHistory(models.Model):
    smpid = models.ForeignKey(SiteModelProduct,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystemhis_smpid')
    empid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystemhis_emp')
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystemhis_client')
    sparepartrequired = models.CharField(max_length=10,blank=True, null=True)
    remarks = models.TextField(blank=True, null=True)
    sparepartitemrequired = models.TextField(blank=True, null=True)
    specs_of_supression_system = models.CharField(max_length=100,blank=True, null=True)
    specs_of_panel_and_make = models.CharField(max_length=100,blank=True, null=True)
    type_of_system = models.CharField(max_length=50,blank=True, null=True)
    make = models.CharField(max_length=50,blank=True, null=True)
    loops_zone = models.CharField(max_length=50,blank=True, null=True)
    model_no_suppresion = models.CharField(max_length=50,blank=True, null=True)
    capacity_of_clyinder = models.CharField(max_length=50,blank=True, null=True)
    no_of_cylinders = models.CharField(max_length=50,blank=True, null=True)
    empty_weight = models.CharField(max_length=50,blank=True, null=True)
    full_weight = models.CharField(max_length=50,blank=True, null=True)
    suppression_gas_filled = models.CharField(max_length=50,blank=True, null=True)
    pressure_gauage_reading = models.TextField(blank=True, null=True)
    electromagnetic_actuator = models.CharField(max_length=50,blank=True, null=True)
    pneumatic_actuator = models.CharField(max_length=50,blank=True, null=True)
    pressure_supervisory_switch = models.CharField(max_length=50,blank=True, null=True)
    flexible_discharge_hose = models.CharField(max_length=50,blank=True, null=True)
    flexible_actuator_hose = models.CharField(max_length=50,blank=True, null=True)
    nozzles_suppresion = models.CharField(max_length=50,blank=True, null=True)
    abort_switch = models.CharField(max_length=50,blank=True, null=True)
    heat_detector = models.CharField(max_length=50,blank=True, null=True)
    manifold = models.CharField(max_length=50,blank=True, null=True)
    piping = models.CharField(max_length=50,blank=True, null=True)
    flame_detector = models.CharField(max_length=50,blank=True, null=True)
    smoke_detector = models.CharField(max_length=50,blank=True, null=True)
    multi_detector = models.CharField(max_length=50,blank=True, null=True)
    gas_detector = models.CharField(max_length=50,blank=True, null=True)
    vesda_detector_panel = models.CharField(max_length=50,blank=True, null=True)
    manual_call_point = models.CharField(max_length=50,blank=True, null=True)
    hooter_cum_sounder = models.CharField(max_length=50,blank=True, null=True)
    zone_monitor_module = models.CharField(max_length=50,blank=True, null=True)
    monitor_module = models.CharField(max_length=50,blank=True, null=True)
    control_module = models.CharField(max_length=50,blank=True, null=True)
    power_supply_unit = models.CharField(max_length=50,blank=True, null=True)
    manual_gas_release_switch = models.CharField(max_length=250,blank=True, null=True)
    siren = models.CharField(max_length=50,blank=True, null=True)
    cables = models.CharField(max_length=50,blank=True, null=True)
    special_detector = models.CharField(max_length=50,blank=True, null=True)
    battery_backup = models.CharField(max_length=50,blank=True, null=True)
    location = models.TextField(blank=True, null=True)
    image = models.FileField(upload_to='media',blank=True, null=True)
    comment = models.TextField(blank=True, null=True)
    health = models.CharField(max_length=50,blank=True, null=True)
    client_comment = models.TextField(blank=True, null=True)
    client_image = models.FileField(upload_to='media',blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now_add=True)



class SuppresionSystemService(models.Model):
    suppresion_system_id = models.ForeignKey(SuppresionSystemHistory,on_delete=models.CASCADE,blank=True,null=True,related_name='suppreionsystemservice_ssid')
    details = models.TextField(blank=True, null=True)
    details_lable = models.TextField(blank=True, null=True)
    service_location = models.TextField(blank=True, null=True)
    qty_required = models.TextField(blank=True, null=True)
    service_remarks = models.TextField(blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    updatedate = models.DateTimeField('Date',auto_now_add=True)

class materialform(models.Model):
    material = models.CharField(max_length=255, blank=True, null=True)
    c_value = models.CharField(max_length=100, blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    
class thrishulform(models.Model):
    thrishul = models.CharField(max_length=255, blank=True, null=True)
    grade = models.CharField(max_length=100, blank=True, null=True)
    hours = models.CharField(max_length=100, blank=True, null=True)
    
class staffform(models.Model):
    type_material = models.CharField(max_length=255, blank=True, null=True)
    c_value = models.CharField(max_length=100, blank=True, null=True)
    length = models.CharField(max_length=100, blank=True, null=True)
    width = models.CharField(max_length=100, blank=True, null=True)
    height = models.CharField(max_length=100, blank=True, null=True)
    quantity = models.CharField(max_length=100, blank=True, null=True)
    areasqrmtr = models.CharField(max_length=100, blank=True, null=True)
    area = models.CharField(max_length=100, blank=True, null=True)
    city = models.CharField(max_length=100, blank=True, null=True)
    state = models.CharField(max_length=100, blank=True, null=True)
    zone = models.CharField(max_length=100, blank=True, null=True)
    sub_area = models.CharField(max_length=100, blank=True, null=True)
    flv = models.CharField(max_length=100, blank=True, null=True)
    thrishul = models.CharField(max_length=100, blank=True, null=True)
    grade = models.CharField(max_length=100, blank=True, null=True)
    hours = models.CharField(max_length=100, blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    
class CarParking(models.Model):
    length = models.CharField(max_length=100, blank=True, null=True)
    width = models.CharField(max_length=100, blank=True, null=True)
    height = models.CharField(max_length=100, blank=True, null=True)
    area = models.CharField(max_length=100, blank=True, null=True)
    ach = models.CharField(max_length=100, blank=True, null=True)
    ExAir = models.CharField(max_length=100, blank=True, null=True)
    FA = models.CharField(max_length=100, blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    
class MechanicalVentilation(models.Model):
    layerheight = models.CharField(max_length=255, blank=True, null=True)
    fire_size = models.CharField(max_length=100, blank=True, null=True)
    pfrate = models.CharField(max_length=100, blank=True, null=True)
    HGLtemp = models.CharField(max_length=100, blank=True, null=True)
    firesizeQ = models.CharField(max_length=100, blank=True, null=True)
    specificheat = models.CharField(max_length=100, blank=True, null=True)
    heattransfercoeff = models.CharField(max_length=100, blank=True, null=True)
    Compartmentlength = models.CharField(max_length=100, blank=True, null=True)
    Compartmentwidth = models.CharField(max_length=100, blank=True, null=True)
    Compartmentheight = models.CharField(max_length=100, blank=True, null=True)
    areaodwalls = models.CharField(max_length=100, blank=True, null=True)
    HCLTemparature = models.CharField(max_length=100, blank=True, null=True)
    densityHGLrho = models.CharField(max_length=100, blank=True, null=True)
    fanflowrate_v_e = models.CharField(max_length=100, blank=True, null=True)
    fanflowrate_ve = models.CharField(max_length=100, blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    
class SmokeVentilation(models.Model):
    Actual_HRR = models.CharField(max_length=255, blank=True, null=True)
    Ceilling_area = models.CharField(max_length=100, blank=True, null=True)
    NDheightHRR = models.CharField(max_length=100, blank=True, null=True)
    smokelayerheight = models.CharField(max_length=100, blank=True, null=True)
    NonDiamentionalheight_y = models.CharField(max_length=100, blank=True, null=True)
    mquantitties = models.CharField(max_length=100, blank=True, null=True)
    Tau = models.CharField(max_length=100, blank=True, null=True)
    Accelerationduegravity = models.CharField(max_length=100, blank=True, null=True)
    lenghtofroom = models.CharField(max_length=100, blank=True, null=True)
    widthofroom = models.CharField(max_length=100, blank=True, null=True)
    floorarea = models.CharField(max_length=100, blank=True, null=True)
    ttfctslheight = models.CharField(max_length=100, blank=True, null=True)
    createdate = models.DateTimeField('Date',auto_now_add=True)
    

    
class SupportTickets(models.Model):
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='supporttickets_clints')
    assignemp =  models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='supporttickets_emp')
    assingnote = models.CharField(max_length=300,blank=True,null=True)
    clint_name = models.CharField(max_length=100,blank=True,null=True)
    modelno = models.CharField(max_length=100,blank=True,null=True)
    tickets_id = models.CharField(max_length=100,blank=True,null=True)
    subject = models.CharField(max_length=100,blank=True,null=True)
    message = models.TextField(blank=True,null=True)
    STATUS_CHOICES = (
        ('Open', 'Open'),
        ('Close', 'Close'),
    )
    status = models.CharField(max_length=6,choices=STATUS_CHOICES,blank=True,null=True)
    PRIORITY_CHOICES = (
        ('High', 'High'),
        ('Medium', 'Medium'),
        ('Low', 'Low'),
    )
    priority = models.CharField(max_length=6,choices=PRIORITY_CHOICES,blank=True,null=True)
    img = models.FileField(upload_to='media',blank=True, null=True)
    date = models.DateTimeField(auto_now_add=True)
    
class datafile(models.Model):
    file = models.FileField(upload_to='media',blank=True, null=True)
    date = models.DateTimeField(auto_now_add=True)
    
class Homepage(models.Model):
    video = models.TextField(blank=True, null=True)
    about = models.TextField(blank=True, null=True)

class CompanyInspection(models.Model):
    clientid = models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='inspection_clints')
    assignemp =  models.ForeignKey(User,on_delete=models.CASCADE,blank=True,null=True,related_name='inspection_emp')
    message = models.TextField(blank=True,null=True)
    STATUS_CHOICES = (
        ('Approve', 'Approve'),
        ('Pendding', 'Pendding'),
        ('Reschedule', 'Reschedule'),
    )
    status = models.CharField(max_length=20,choices=STATUS_CHOICES,blank=True,null=True)
    inspection_date = models.DateTimeField(auto_now_add=False)
    reshedul_date = models.CharField(max_length=100,blank=True,null=True)
    date = models.DateTimeField(auto_now_add=True)
    
