# Django import
from django.db import models

# LeakLess Monitor import
from Applications.Devices.models import Lldevicelist
from Applications.Users.models import AuthGroup
from datetime import datetime, date, time, timedelta


class Llmeasurementgroup(models.Model):
    idllmeasurementgroup = models.IntegerField(db_column='idLLMeasurementGroup', primary_key=True)  # Field name made lowercase.
    groupname = models.CharField(db_column='GroupName', max_length=45)  # Field name made lowercase.
    groupinfo = models.CharField(db_column='GroupInfo', max_length=45, blank=True)  # Field name made lowercase.
    usergroupname = models.CharField(db_column='UserGroupName', max_length=80)  # Field name made lowercase.

    axisleftlabel = models.CharField(db_column='AxisLeftLabel', max_length=45, blank=True)  # Field name made lowercase.
    axisleftunit = models.CharField(db_column='AxisLeftUnit', max_length=15, blank=True)  # Field name made lowercase.
    axislefttype = models.CharField(db_column='AxisLeftType', max_length=15, blank=True)  # Field name made lowercase.
    axisrightlabel = models.CharField(db_column='AxisRightLabel', max_length=45, blank=True)  # Field name made lowercase.
    axisrightunit = models.CharField(db_column='AxisRightUnit', max_length=15, blank=True)  # Field name made lowercase.
    axisrighttype = models.CharField(db_column='AxisRightType', max_length=15, blank=True)  # Field name made lowercase.
    class Meta:
        managed = False
        db_table = 'LLMeasurementGroup'


class Llmeasurementgroupmeasurements(models.Model):
    idllmeasurementgroupmeasurements = models.IntegerField(db_column='idLLMeasurementGroupMeasurements', primary_key=True)  # Field name made lowercase.
    measurementgroupid = models.ForeignKey(Llmeasurementgroup, db_column='MeasurementGroupID', blank=True, null=True)  # Field name made lowercase.
    deviceid = models.ForeignKey(Lldevicelist, db_column='DeviceID', blank=True, null=True)  # Field name made lowercase.
    measurement = models.CharField(db_column='Measurement', max_length=45, blank=True)  # Field name made lowercase.
    axis = models.IntegerField(db_column='Axis')  # Field name made lowercase.
    info = models.CharField(db_column='Info', max_length=45, blank=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLMeasurementGroupMeasurements'

class Llmeasurementgroupcalculations(models.Model):
    idllmeasurementgroupcalculations = models.IntegerField(db_column='idLLMeasurementGroupCalculations', primary_key=True)  # Field name made lowercase.
    measurementgroupid = models.ForeignKey(Llmeasurementgroup, db_column='MeasurementGroupID', blank=True, null=True)  # Field name made lowercase.
    name = models.CharField(db_column='Name', max_length=45, blank=True)  # Field name made lowercase.
    info = models.CharField(db_column='Info', max_length=45, blank=True)  # Field name made lowercase.
    axis = models.IntegerField(db_column='Axis')  # Field name made lowercase.
    equation = models.CharField(db_column='Equation', max_length=145, blank=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLMeasurementGroupCalculations'

class LldevicePdlagTotalizers(models.Model):
    idlldevice_pdlag_totalizers = models.IntegerField(db_column='idLLDevice_PDLAG_Totalizers', primary_key=True)  # Field name made lowercase.
    date = models.DateField(db_column='Date', blank=True, null=True)  # Field name made lowercase.
    ch1_total_flow = models.FloatField(db_column='CH1 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_total_flow = models.FloatField(db_column='CH2 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_Totalizers'

class LldevicePdlagMeasure(models.Model):
    idlldevice_pdlag_measure = models.IntegerField(db_column='idLLDevice_PDLAG_Measure', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    ch1_pressure = models.FloatField(db_column='CH1 Pressure', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch1_flow = models.FloatField(db_column='CH1 Flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch1_total_flow = models.FloatField(db_column='CH1 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_pressure = models.FloatField(db_column='CH2 Pressure', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_flow = models.FloatField(db_column='CH2 Flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_total_flow = models.FloatField(db_column='CH2 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    digital_ch1 = models.FloatField(db_column='Digital CH1', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    digital_ch2 = models.FloatField(db_column='Digital CH2', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.


    def get_ch1_pressure(self):
        if self.ch1_pressure is None:
            return 0
        else:
            return self.ch1_pressure

    def get_ch2_pressure(self):
        if self.ch2_pressure is None:
            return 0
        else:
            return self.ch2_pressure

    def get_ch1_flow(self):
        if self.ch1_flow is None:
            return 0
        else:
            return self.ch1_flow

    def get_ch2_flow(self):
        if self.ch2_flow is None:
            return 0
        else:
            return self.ch2_flow

    def get_ch1_total_flow(self):
        if self.ch1_total_flow is None:
            return 0
        else:
            return self.ch1_total_flow

    def get_ch2_total_flow(self):
        if self.ch2_total_flow is None:
            return 0
        else:
            return self.ch2_total_flow


    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_Measure'

class LldevicePdlagMeasureArchive(models.Model):
    idlldevice_pdlag_measurearchive = models.IntegerField(db_column='idLLDevice_PDLAG_MeasureArchive', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    ch1_pressure = models.FloatField(db_column='CH1 Pressure', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch1_flow = models.FloatField(db_column='CH1 Flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch1_total_flow = models.FloatField(db_column='CH1 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_pressure = models.FloatField(db_column='CH2 Pressure', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_flow = models.FloatField(db_column='CH2 Flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_total_flow = models.FloatField(db_column='CH2 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    digital_ch1 = models.FloatField(db_column='Digital CH1', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    digital_ch2 = models.FloatField(db_column='Digital CH2', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_MeasureArchive'

class LldevicePdlagStatus(models.Model):
    idlldevice_pdlag_status = models.IntegerField(db_column='idLLDevice_PDLAG_status', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    battery = models.FloatField(db_column='Battery', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    signal = models.FloatField(db_column='Signal', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_Status'

class LldevicePdlagRealtime(models.Model):
    idlldevice_pdlag_realtime = models.IntegerField(db_column='idLLDevice_PDLAG_Realtime', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    ch1_pressure = models.FloatField(db_column='CH1 Pressure', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch1_flow = models.FloatField(db_column='CH1 Flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch1_total_flow = models.FloatField(db_column='CH1 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_pressure = models.FloatField(db_column='CH2 Pressure', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_flow = models.FloatField(db_column='CH2 Flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    ch2_total_flow = models.FloatField(db_column='CH2 Total flow', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    digital_ch1 = models.FloatField(db_column='Digital CH1', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    digital_ch2 = models.FloatField(db_column='Digital CH2', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    def get_elapsed_time(self):

        if self.timestamp is not None:
            time_difference = datetime.now() - self.timestamp
            hours, remainder = divmod(time_difference.seconds, 3600)
            minutes, seconds = divmod(remainder, 60)
            if time_difference.days == 0:
                return '%02d:%02d:%02d' % (hours, minutes, seconds)
            elif time_difference.days == 1:
                return '%d Day' % time_difference.days
            elif time_difference.days < 0:
                return '00:00:00'
            else:
                return '%d Days' % time_difference.days

        else:
            return ''

    def get_elapsed_ms_time(self):
        if self.timestamp is not None:
            time_difference = datetime.now() - self.timestamp
            ms = (time_difference.days * 24 * 60 * 60 + time_difference.seconds) * 1000 + time_difference.microseconds / 1000.0
            return ms
        else:
            return ''

    def get_ch1_pressure(self):
        if self.ch1_pressure is None:
            return 0
        else:
            return self.ch1_pressure

    def get_recalculated_ch1_pressure(self):
        pressure_factor = self.lldevicelist.get_pressure_factor()
        return self.get_ch1_pressure()*pressure_factor


    def get_ch2_pressure(self):
        if self.ch2_pressure is None:
            return 0
        else:
            return self.ch2_pressure

    def get_recalculated_ch2_pressure(self):
        pressure_factor = self.lldevicelist.get_pressure_factor()
        return self.get_ch2_pressure()*pressure_factor

    def get_ch1_flow(self):
        if self.ch1_flow is None:
            return 0
        else:
            return self.ch1_flow

    def get_recalculated_ch1_flow(self):
        flow_factor = self.lldevicelist.get_flow_factor()
        return self.get_ch1_flow()*flow_factor

    def get_ch2_flow(self):
        if self.ch2_flow is None:
            return 0
        else:
            return self.ch2_flow

    def get_recalculated_ch2_flow(self):
        flow_factor = self.lldevicelist.get_flow_factor()
        return self.get_ch2_flow()*flow_factor

    def get_ch1_total_flow(self):
        if self.ch1_total_flow is None:
            return 0
        else:
            return self.ch1_total_flow

    def get_recalculated_ch1_total_flow(self):
        total_flow_factor = self.lldevicelist.get_total_flow_factor()
        return self.get_ch1_total_flow()*total_flow_factor

    def get_ch2_total_flow(self):
        if self.ch2_total_flow is None:
            return 0
        else:
            return self.ch2_total_flow

    def get_recalculated_ch2_total_flow(self):
        total_flow_factor = self.lldevicelist.get_total_flow_factor()
        return self.get_ch2_total_flow()*total_flow_factor

    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_Realtime'


class LldevicePdlagAlarmProfile(models.Model):
    idlldevice_pdlag_alarmprofile = models.IntegerField(db_column='idLLDevice_PDLAG_AlarmProfile', primary_key=True)  # Field name made lowercase.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.
    lastprofilechange = models.DateTimeField(db_column='LastProfileChange', blank=True, null=True)  # Field name made lowercase.
    ap0 = models.IntegerField(db_column='AP0', blank=True, null=True)           # Field name made lowercase.
    rem_ap0 = models.CharField(db_column='Rem_AP0', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap0 = models.CharField(db_column='Loc_AP0', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap1 = models.IntegerField(db_column='AP1', blank=True, null=True)           # Field name made lowercase.
    rem_ap1 = models.CharField(db_column='Rem_AP1', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap1 = models.CharField(db_column='Loc_AP1', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap2 = models.IntegerField(db_column='AP2', blank=True, null=True)           # Field name made lowercase.
    rem_ap2 = models.CharField(db_column='Rem_AP2', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap2 = models.CharField(db_column='Loc_AP2', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap3 = models.IntegerField(db_column='AP3', blank=True, null=True)           # Field name made lowercase.
    rem_ap3 = models.CharField(db_column='Rem_AP3', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap3 = models.CharField(db_column='Loc_AP3', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap4 = models.IntegerField(db_column='AP4', blank=True, null=True)           # Field name made lowercase.
    rem_ap4 = models.CharField(db_column='Rem_AP4', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap4 = models.CharField(db_column='Loc_AP4', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap5 = models.IntegerField(db_column='AP5', blank=True, null=True)           # Field name made lowercase.
    rem_ap5 = models.CharField(db_column='Rem_AP5', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap5 = models.CharField(db_column='Loc_AP5', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap6 = models.IntegerField(db_column='AP6', blank=True, null=True)           # Field name made lowercase.
    rem_ap6 = models.CharField(db_column='Rem_AP6', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap6 = models.CharField(db_column='Loc_AP6', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    ap7 = models.IntegerField(db_column='AP7', blank=True, null=True)           # Field name made lowercase.
    rem_ap7 = models.CharField(db_column='Rem_AP7', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.
    loc_ap7 = models.CharField(db_column='Loc_AP7', blank=True, max_length=120)     # Field name made lowercase. Field renamed to remove unsuitable characters.


    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_AlarmProfile'


class LldevicePdlagAlarm(models.Model):
    idlldevice_pdlag_alarm = models.IntegerField(db_column='idLLDevice_PDLAG_Alarm', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    alarm = models.CharField(db_column='Alarm', max_length=160, blank=True)  # Field name made lowercase.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.
    checked = models.IntegerField(db_column='Checked', blank=True, null=True)  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLDevice_PDLAG_Alarm'

class LldeviceMAG8000Measure(models.Model):
    idlldevice_mag8000_measure = models.IntegerField(db_column='idLLDevice_MAG8000_Measure', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    flow_value = models.FloatField(db_column='FlowValue', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    flow_unit = models.CharField(db_column='FlowUnit', max_length=15, blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_flow1 = models.FloatField(db_column='TotalFlow1', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_flow2 = models.FloatField(db_column='TotalFlow2', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_flow3 = models.FloatField(db_column='TotalFlow3', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_unit = models.CharField(db_column='TotalUnit', max_length=15, blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    analog_current = models.FloatField(db_column='AnalogCurrent', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    analog_voltage = models.FloatField(db_column='AnalogVoltage', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    def get_elapsed_time(self):

        if self.timestamp is not None:
            time_difference = datetime.now() - self.timestamp
            hours, remainder = divmod(time_difference.seconds, 3600)
            minutes, seconds = divmod(remainder, 60)
            if time_difference.days == 0:
                return '%02d:%02d:%02d' % (hours, minutes, seconds)
            elif time_difference.days == 1:
                return '%d Day' % time_difference.days
            elif time_difference.days < 0:
                return '00:00:00'
            else:
                return '%d Days' % time_difference.days

        else:
            return ''

    def get_elapsed_ms_time(self):
        if self.timestamp is not None:
            time_difference = datetime.now() - self.timestamp
            ms = (time_difference.days * 24 * 60 * 60 + time_difference.seconds) * 1000 + time_difference.microseconds / 1000.0
            return ms
        else:
            return ''

    class Meta:
        managed = False
        db_table = 'LLDevice_MAG8000_Measure'

class LldeviceMAG8000Realtime(models.Model):
    idlldevice_mag8000_realtime = models.IntegerField(db_column='idLLDevice_MAG8000_Realtime', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    flow_value = models.FloatField(db_column='FlowValue', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    flow_unit = models.CharField(db_column='FlowUnit', max_length=15, blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_flow1 = models.FloatField(db_column='TotalFlow1', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_flow2 = models.FloatField(db_column='TotalFlow2', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_flow3 = models.FloatField(db_column='TotalFlow3', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    total_unit = models.CharField(db_column='TotalUnit', max_length=15, blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    analog_current = models.FloatField(db_column='AnalogCurrent', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    analog_voltage = models.FloatField(db_column='AnalogVoltage', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    def get_elapsed_time(self):

        if self.timestamp is not None:
            time_difference = datetime.now() - self.timestamp
            hours, remainder = divmod(time_difference.seconds, 3600)
            minutes, seconds = divmod(remainder, 60)
            if time_difference.days == 0:
                return '%02d:%02d:%02d' % (hours, minutes, seconds)
            elif time_difference.days == 1:
                return '%d Day' % time_difference.days
            elif time_difference.days < 0:
                return '00:00:00'
            else:
                return '%d Days' % time_difference.days

        else:
            return ''

    def get_elapsed_ms_time(self):
        if self.timestamp is not None:
            time_difference = datetime.now() - self.timestamp
            ms = (time_difference.days * 24 * 60 * 60 + time_difference.seconds) * 1000 + time_difference.microseconds / 1000.0
            return ms
        else:
            return ''

    class Meta:
        managed = False
        db_table = 'LLDevice_MAG8000_Realtime'


class LldeviceMAG8000Status(models.Model):
    idlldevice_mag8000_status = models.IntegerField(db_column='idLLDevice_MAG8000_status', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    battery = models.FloatField(db_column='Battery', blank=True, null=True)  # Field name made lowercase. Field renamed to remove unsuitable characters.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLDevice_MAG8000_Status'

class Lldeviceannotations(models.Model):
    idlldeviceannotations = models.IntegerField(db_column='idLLDeviceAnnotations', primary_key=True)  # Field name made lowercase.
    timestamp = models.DateTimeField(db_column='Timestamp', blank=True, null=True)  # Field name made lowercase.
    identifier = models.CharField(db_column='Identifier', max_length=45, blank=True)  # Field name made lowercase.
    channel = models.CharField(db_column='Channel', max_length=45, blank=True)  # Field name made lowercase.
    text = models.CharField(db_column='Text', max_length=145, blank=True)  # Field name made lowercase.
    shorttext = models.CharField(db_column='ShortText', max_length=45, blank=True)  # Field name made lowercase.
    icon = models.CharField(db_column='Icon', max_length=45, blank=True)  # Field name made lowercase.
    lldevicelist = models.ForeignKey(Lldevicelist, db_column='LLDeviceList_ID')  # Field name made lowercase.

    class Meta:
        managed = False
        db_table = 'LLDeviceAnnotations'


class LldeviceMails(models.Model):
    idlldevicemails = models.IntegerField(db_column='idLLDeviceMails', primary_key=True)  # Field name made lowercase.
    sender = models.CharField(db_column='Sender', max_length=145)  # Field name made lowercase.
    recipient = models.CharField(db_column='Recipient', max_length=145)  # Field name made lowercase.
    subject = models.CharField(db_column='Subject', max_length=45, blank=True)  # Field name made lowercase.
    body_plain = models.CharField(db_column='BodyPlain',max_length=145, blank=True)  # Field name made lowercase.
    attachment = models.FileField(db_column='Attachment',upload_to='attachments/')


    class Meta:
        managed = False
        db_table = 'LLDeviceMails'