from app import db from marshmallow import Schema, fields, ValidationError, pre_load import datetime from sqlalchemy import Column, DateTime # authors = db.Table('books_authors', # db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True), # db.Column('author_id', db.Integer, db.ForeignKey('authors.id'), primary_key=True) # ) # stacks = db.Table('books_stacks', # db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True), # db.Column('stack_id', db.Integer, db.ForeignKey('stacks.id'), primary_key=True) # ) # instances = db.Table('books_instances', # db.Column('book_id', db.Integer, db.ForeignKey('books.id'), primary_key=True), # db.Column('instance_id', db.Integer, db.ForeignKey('instances.id'), primary_key=True) # ) class Location(db.Model): __tablename__ = 'locations' id = db.Column(db.Integer, primary_key = True) longitude = db.Column(db.Numeric(10,8)) latitude = db.Column(db.Numeric(10,8)) loc_type = db.Column(db.String(200)) message = db.Column(db.String(4000)) audio = db.Column(db.String(255)) # title = db.Column(db.String(255)) # file = db.Column(db.String(255)) # cover = db.Column(db.String(255)) # fileformat = db.Column(db.String(255)) # category = db.Column(db.String(255)) # year_published = db.Column(db.Numeric(4,0)) # description = db.Column(db.String(2500)) # html = db.Column(db.String(255)) # downloads = db.Column(db.Numeric(100,0)) # authors = db.relationship('Author', secondary=authors,cascade="delete", lazy='subquery', # backref=db.backref('books', lazy=True),passive_deletes=True) # stacks = db.relationship('Stack', secondary=stacks, lazy='subquery', # backref=db.backref('books', lazy=True)) # instances = db.relationship('Instance', secondary=instances, lazy='subquery', # backref=db.backref('books', lazy=True)) # scapeX = db.Column(db.Numeric(10,2)) # scapeY = db.Column(db.Numeric(10,2)) # message = db.Column(db.String(1000)) # sameness = db.Column(db.Numeric()) # diversity = db.Column(db.Numeric()) # gender = db.Column(db.Numeric()) # who = db.Column(db.String(255)) def __init__(self, longitude, latitude, loc_type, message, audio): self.longitude = longitude self.latitude = latitude self.loc_type = loc_type self.message = message self.audio = audio # def __repr__(self): # return '' % self.title def get_id(self): return self.id class LocationSchema(Schema): id = fields.Int(dump_only=True) longitude = fields.Float() latitude = fields.Float() loc_type = fields.String() message = fields.String() audio = fields.String() def must_not_be_blank(data): if not data: raise ValidationError('You forgot to write stuff.')