class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) # backref allows us to get the user who created the post # lazy defines when sqlalchemy loads the datafrom the database. True means # it will load data as-needed in one go #This allows us to use post attribute to get all of a user's posts #Not a column # posts = db.relationship('Post', backref='author', lazy=True) def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod #Tells python not to expect self parameter as argument def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}'"
class User(db.Model, UserMixin): #__tablename__ = "User" id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) api_keys = db.relationship('API_Key', backref='keyowner', lazy=True) emotion_predictions = db.relationship('EmotionPrediction', backref='uploader', lazy=True) def get_reset_token(self, expires_sec=1800): s = Serializer(app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') @staticmethod def verify_reset_token(token): s = Serializer(app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class gps(db.Model): timestamp = db.Column(db.String, nullable=False, primary_key=True) longitude = db.Column(db.Float) latitude = db.Column(db.Float) def __repr__(self): return f"gps ('{self.timestamp}', '{self.longitude}', '{self.latitude}')"
class soughtgps(db.Model): id = db.Column(db.Integer, primary_key=True) Longtitude = db.Column(db.Float, unique=False, nullable=False) Latitude = db.Column(db.Float, unique=False, nullable=False) def __repr__(self): return f"Gps('{self.Longtitude}', '{self.Latitude}')"
class Connection(db.Model): id = db.Column(db.Integer, primary_key=True) patient_id = db.Column(db.Integer, nullable=False) physician_id = db.Column(db.Integer, nullable=False) def __repr__(self): return f"Connection('patientID: {self.patient_id}, 'physicianID: {self.physician_id})"
class streetandCity(db.Model): id = db.Column(db.Integer, primary_key=True) street = db.Column(db.String, nullable=False) city = db.Column(db.String, nullable=False) def __repr__(self): return f"streetandCity ('{self.street}','{self.city}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) packings = db.relationship('Packing', backref='author', lazy=True) def get_reset_token(self, expires_sec=1800): s = Serializer(app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf_8') @staticmethod def verify_reset_token(token): s = Serializer(app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) #testin fix this when ready def __repr__(self): return f"User('{self.username}','{self.email}', '{self.image_file}')"
class Sala(db.Model): id = db.Column(db.Integer, primary_key=True) Numero = db.Column(db.Integer, nullable=False) estantes = db.relationship('Estante', backref='owner', lazy=True) def __repr__(self): return '<Sala %r>' % self.id
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') password = db.Column(db.String(60), nullable=False) # One-to-many connection to Post, backref as the connecting data posts = db.relationship('Post', backref='author', lazy=True) # The method to get the password reset token that's valid for 30 minutes def get_reset_token(self, expires_sec=1800): s = Serializer(current_app.config['SECRET_KEY'], expires_sec) return s.dumps({'user_id': self.id}).decode('utf-8') # A static method for verifying the reset token @staticmethod def verify_reset_token(token): s = Serializer(current_app.config['SECRET_KEY']) try: user_id = s.loads(token)['user_id'] except: return None return User.query.get(user_id) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class Estante(db.Model): id = db.Column(db.Integer, primary_key=True) Patrimonio = db.Column(db.String(200), nullable=False) Sala_id = db.Column(db.Integer, db.ForeignKey('sala.id'), nullable=True) caixas = db.relationship('Caixa', backref='owner', lazy=True) def __repr__(self): return '<Estante %r>' % self.id
class Sales(db.Model): id = db.Column(db.Integer, primary_key=True) product_id = db.Column(db.Integer, db.ForeignKey('product.id'), nullable=False) store_id = db.Column(db.Integer, db.ForeignKey('store.id'), nullable=False) purchase_date = db.Column(db.DateTime, nullable=False) sale_sum = db.Column(db.Integer, nullable=False)
class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"Post('{self.title}', '{self.date_posted}', '{self.user_id}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.png') password = db.Column(db.String(60), nullable=False) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(100), nullable=False, unique=True) username = db.Column(db.String(20), nullable=False, unique=True) image_file = db.Column(db.String(20), nullable=False, default='default.jpeg') password = db.Column(db.String(60), nullable=False) posts = db.relationship('Post', backref='author', lazy=True) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')"
class API_Key(db.Model): #__tablename__ = "API_Key" id = db.Column(db.Integer, primary_key=True) key = db.Column(db.String(100), nullable=False) date_created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __repr__(self): return f"API_KEY('{self.key}','{self.user_id}','{self.date_created}')"
class Caixa(db.Model): id = db.Column(db.Integer, primary_key=True) Patrimonio = db.Column(db.String(200), nullable=False) Estante_id = db.Column(db.Integer, db.ForeignKey('estante.id'), nullable=True) animais = db.relationship('Animal', backref='owner', lazy=True) Projeto_id = db.Column(db.Integer, db.ForeignKey('projeto.id'), nullable=True) def __repr__(self): return '<Caixa %r>' % self.id
class Packing(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) date_created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) containers = db.relationship('Container', backref='packing', lazy=True) boxes = db.relationship('Box', backref='packing', lazy=True) def __repr__(self): return f"Packing('{self.name}', '{self.date_created}', id: '{self.id}')"
class EmotionPrediction(db.Model): #__tablename__ = "EmotionPrediction" id = db.Column(db.Integer, primary_key=True) image_file = db.Column(db.String(20), nullable=False) emotion_class = db.Column(db.String(100), nullable=False) date_uploaded = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False, default='Anonymous User') def __repr__(self): return f"EmotionPrediction('{self.image_file}','{self.user_id}','{self.date_uploaded}')"
class Post(db.Model): #__tablename__ = "Post" id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) content = db.Column(db.Text, nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __lt__(self, other): return self.date_posted < other.date_posted def __repr__(self): t = self.date_posted return f"Post('{self.title}', '{t.strftime('%Y-%m-%d %H:%M:%S')} UTC', {self.content})"
class Pessoa(db.Model): id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(200), nullable=False) telefone = db.Column(db.Integer, nullable=False) email = db.Column(db.String(200), nullable=False) date_created = db.Column(db.DateTime, default=datetime.utcnow) responsabilidade = db.relationship('Sala', secondary=responsavel, backref=db.backref('responsaveis', lazy='dynamic')) encarregar = db.relationship('Projeto', secondary=encarregado, backref=db.backref('encarregados', lazy='dynamic')) #TYPE ENUM - PESQUISADOR, ALUNO RESPONSAVEL, OUTROS COLABORADORES, ADMIN def __repr__(self): return '<Pessoa %r>' % self.id
class Park(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) prefecture = db.Column(db.String(100), nullable=False) area = db.Column(db.Float, nullable=False) lat = db.Column(db.Float, nullable=False) lon = db.Column(db.Float, nullable=False) capacity = db.Column(db.Integer, nullable=False, default=0) count = db.Column(db.Integer, nullable=False, default=0) image_file = db.Column(db.String(100), unique=False, nullable=False, default="default.jpg") fake_distance = db.Column(db.Integer, nullable=False, default=69) people = db.relationship('User', backref='location', lazy=True) reservations = db.relationship('Reservation', backref='place', lazy=True) def __repr__(self): return f"Post('{self.name}', '{self.prefecture}', '{self.area}', {self.lat}', '{self.lon}', '{self.capacity}', '{self.present}')"
class Event(db.Model): id = db.Column(db.Integer, primary_key=True) country_name = db.Column(db.String(30), nullable=False) full_name = db.Column(db.String(120), nullable=False) year = db.Column(db.String(4), nullable=False) start_date_time = db.Column(db.Integer, nullable=False) end_date_time = db.Column(db.Integer, nullable=False) active = db.Column(db.Boolean, nullable=False) result = db.Column(db.Text, nullable=True) def __repr__(self): return f"Post('{self.id}', '{self.country_name})"
class Users(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String, nullable=False) last_name = db.Column(db.String, nullable=False) email = db.Column(db.String, unique=True, nullable=False) image = db.Column(db.String, nullable=False, default='default.jpg') age = db.Column(db.Integer, nullable=False) password = db.Column(db.String(60), nullable=False) category = db.Column(db.Integer, nullable=False) def __repr__(self): return f"User('{self.id}', '{self.first_name}', '{self.last_name}', '{self.email}', '{self.image}', '{self.age}', '{self.password}', '{self.category}')"
class Reservation(db.Model): id = db.Column(db.Integer, primary_key=True) date_created = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) start_time = db.Column(db.String, nullable=False, default="10:00") end_time = db.Column(db.String, nullable=False, default="14:00") park_id = db.Column(db.Integer, db.ForeignKey('park.id'), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) active = db.Column(db.Boolean, nullable=False, default=False) def __repr__(self): return f"Reservation('{self.date_created}', '{self.park_id}' ,'{self.user_id}')"
class ContainerInstance(db.Model): packing_id = db.Column(db.Integer) container_id = db.Column(db.Integer, db.ForeignKey('container.id'), nullable=False) instance_id = db.Column(db.Integer, primary_key=True) x = db.Column(db.Integer, nullable=False) y = db.Column(db.Integer, nullable=False) z = db.Column(db.Integer, nullable=False) weight_remaining = db.Column(db.Integer, nullable=False) space_remaining = db.Column(db.Integer, nullable=False) max_weight = db.Column(db.Integer, nullable=False) #returnbe is def __repr__(self): return f"Container instance('container={self.container_id}', x='{self.x}', y='{self.y}')," \ f"z='{self.z}', weight remaining='{self.weight_remaining}', instance_id='{self.instance_id}'," \ f" space_remaining='{self.space_remaining}' packing id= '{self.packing_id}', max_weight='{self.max_weight}'"
class Animal(db.Model): id = db.Column(db.Integer, primary_key=True) especie = db.Column(db.String(200), nullable=False) linhagem = db.Column(db.String(200), nullable=False) sexo = db.Column(db.String(200), nullable=False) nascimento = db.Column(db.Integer) date_created = db.Column(db.DateTime, default=datetime.utcnow) Caixa_id = db.Column(db.Integer, db.ForeignKey('caixa.id'), nullable=True) def __repr__(self): return '<Animal %r>' % self.id
class Container(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) x = db.Column(db.Integer, nullable=False) y = db.Column(db.Integer, nullable=False) z = db.Column(db.Integer, nullable=False) max_weight = db.Column(db.Integer, nullable=False) packing_id = db.Column(db.Integer, db.ForeignKey('packing.id'), nullable=False) def __repr__(self): return f"Container('{self.name}', x='{self.x}', y='{self.y}')," \ f"z='{self.z}', max weight='{self.max_weight}', packing_id='{self.packing_id}', id='{self.id}'"
class Selection(db.Model): id = db.Column(db.Integer, primary_key=True) event_id = db.Column(db.Integer, db.ForeignKey('event.id'), nullable=False) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) top10_selection_1 = db.Column(db.String(20), nullable=False) top10_selection_2 = db.Column(db.String(20), nullable=False) top10_selection_3 = db.Column(db.String(20), nullable=False) top10_selection_4 = db.Column(db.String(20), nullable=False) top10_selection_5 = db.Column(db.String(20), nullable=False) top10_selection_6 = db.Column(db.String(20), nullable=False) top10_selection_7 = db.Column(db.String(20), nullable=False) top10_selection_8 = db.Column(db.String(20), nullable=False) top10_selection_9 = db.Column(db.String(20), nullable=False) top10_selection_10 = db.Column(db.String(20), nullable=False) stage_two_selection = db.Column(db.String(20), nullable=False) power_stage_selection = db.Column(db.String(20), nullable=False) def __repr__(self): return f"Post('{self.id}', '{self.event_id})"
class Projeto(db.Model): id = db.Column(db.Integer, primary_key=True) CEUA = db.Column(db.Integer) Data_Exp_CEUA = db.Column(db.Integer) N_Animais_Aprovados = db.Column(db.Integer) N_Animais_Bioterio = db.Column(db.Integer) Data_Ent_Bioterio = db.Column(db.Integer) Data_Saida = db.Column(db.Integer) Motivo_Saida = db.Column(db.String(200), nullable=False) Status = db.Column(db.String(200), nullable=False) Nome = db.Column(db.String(200), nullable=False) Descricao = db.Column(db.String(200), nullable=False) caixas_projeto = db.relationship('Caixa', backref='Projeto', lazy=True) def __repr__(self): return '<Caixa %r>' % self.id
id = db.Column(db.Integer, primary_key=True) especie = db.Column(db.String(200), nullable=False) linhagem = db.Column(db.String(200), nullable=False) sexo = db.Column(db.String(200), nullable=False) nascimento = db.Column(db.Integer) date_created = db.Column(db.DateTime, default=datetime.utcnow) Caixa_id = db.Column(db.Integer, db.ForeignKey('caixa.id'), nullable=True) def __repr__(self): return '<Animal %r>' % self.id # responsavel = db.Table( 'responsavel', db.Column('pessoa_id', db.Integer, db.ForeignKey('pessoa.id')), db.Column('sala_id', db.Integer, db.ForeignKey('sala.id'))) # encarregado = db.Table( 'encarregado', db.Column('pessoa_id', db.Integer, db.ForeignKey('pessoa.id')), db.Column('projeto_id', db.Integer, db.ForeignKey('projeto.id'))) # class Pessoa(db.Model): id = db.Column(db.Integer, primary_key=True) nome = db.Column(db.String(200), nullable=False) telefone = db.Column(db.Integer, nullable=False) email = db.Column(db.String(200), nullable=False) date_created = db.Column(db.DateTime, default=datetime.utcnow)