Skip to content
Snippets Groups Projects
models.py 3.43 KiB
from __future__ import unicode_literals
import uuid
import datetime
from django.db import models
from django.utils import timezone

class FlightRecords(models.Model):
    frid = models.IntegerField(default=0)
    origin = models.CharField(max_length=512)
    dest = models.CharField(max_length=512)
    depart_date = models.CharField(max_length=512)
    depart_time_actual = models.CharField(max_length=512, null=True)
    depart_time_scheduled = models.CharField(max_length=512, null=True)
    arrival_time_actual = models.CharField(max_length=512, null=True)
    arrival_time_scheduled = models.CharField(max_length=512, null=True)
    dep_delay = models.FloatField(default=0.0)
    arr_delay = models.FloatField(default=0.0)
    #should be foreign key
    airline = models.CharField(max_length=512)
    number = models.IntegerField(default=0)
    def __unicode__(self):
        return "{0}-{1}-{2}-{3}-{4}".format(frid, origin, dest, depart_time, arrival_time)

class RecordSet(models.Model):
    name = models.CharField(max_length=512)
    value = models.TextField()
    def __unicode__(self):
        return "{0}: {1}".format(name, value)

#Name, Birthday, Gender, email, Password
class Member(models.Model):
    name = models.CharField(max_length=512)
    birthday = models.DateField(auto_now=False, auto_now_add=False)
    gender = models.CharField(max_length=32)
    email = models.EmailField(unique=True)
    password = models.CharField(max_length=512)
    def __unicode__(self):
        return email

    def save(self, *args, **kwargs):
        if self.pk == None:
            if self.gender.lower() != "male" and self.gender.lower() != "female":
                raise ValidationError("invalid gender")
        self.full_clean()
        super(Member, self).save(*args, **kwargs)

#FSID, Origin, Destination, Departure Time, Arrival Time, Predicted Delay Time, Airline, Flight Number
class FlightSeg(models.Model):
    fsid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    origin = models.CharField(max_length=512)
    dest = models.CharField(max_length=512)
    depart_time = models.DateTimeField(auto_now=False, auto_now_add=False)
    arrival_time = models.DateTimeField(auto_now=False, auto_now_add=False)
    airline = models.CharField(max_length=512)
    flight_num = models.CharField(max_length=128)
    user = models.ForeignKey(Member, verbose_name='user_flightseg', on_delete=models.CASCADE)

    def save(self, *args, **kwargs):
        self.full_clean()
        super(FlightSeg, self).save(*args, **kwargs)


class Room(models.Model):
    name = models.TextField()
    label = models.SlugField(unique=True)

    def __unicode__(self):
        return self.label


class Message(models.Model):
    room = models.ForeignKey(Room, related_name='messages')
    handle = models.TextField()
    message = models.TextField()
    timestamp = models.DateTimeField(default=timezone.now, db_index=True)

    def __unicode__(self):
        return '[{timestamp}] {handle}: {message}'.format(**self.as_dict())

    @property
    def formatted_timestamp(self):
        return self.timestamp.strftime('%b %-d %-I:%M %p')

    def as_dict(self):
        return {'handle': self.handle, 'message': self.message, 'timestamp': self.formatted_timestamp}
"""
class Reserved(models.Model):
    user = models.ForeignKey(User, verbose_name='user_reserved', on_delete=models.CASCADE)
    flyseg = models.ForeignKey(FlightSeg, verbose_name='flyseg_reserved', on_delete=models.CASCADE)
"""