class QR_codes(db.Model): id = db.Column(db.Integer, primary_key=True) secret_key = db.Column(db.String(1000), nullable=False, default=random_gen()) dateAdded = db.Column(db.DateTime, nullable=False, default=datetime.now) registered = db.Column(db.Boolean, default=False) typeId = db.Column(db.Integer, default=0)
class City(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) secret_key = db.Column(db.String(1000), nullable=False, default=random_gen()) description = db.Column(db.String(500)) typeId = db.Column(db.Integer, db.ForeignKey("city_types.id")) dateAdded = db.Column(db.DateTime, nullable=False, default=datetime.now) regions = db.relationship('Regions', backref='city', lazy=True)
class Flats(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) secret_key = db.Column(db.String(1000), nullable=False, default=random_gen()) description = db.Column(db.String(500)) houseId = db.Column(db.Integer, db.ForeignKey("houses.id")) typeId = db.Column(db.Integer, db.ForeignKey("flat_types.id")) dateAdded = db.Column(db.DateTime, nullable=False, default=datetime.now) residents = db.relationship('Residents', backref='flats', lazy=True) devices = db.relationship('Devices', backref='flats', lazy=True) rooms = db.relationship('Rooms', backref='flats', lazy=True)
class Houses(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) secret_key = db.Column(db.String(1000), nullable=False, default=random_gen()) description = db.Column(db.String(500)) longit = db.Column(db.String(100)) latit = db.Column(db.String(100)) regionId = db.Column(db.Integer, db.ForeignKey("regions.id")) typeId = db.Column(db.Integer, db.ForeignKey("house_types.id")) dateAdded = db.Column(db.DateTime, nullable=False, default=datetime.now) flats = db.relationship('Flats', backref='houses', lazy=True)
class Residents(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) surname = db.Column(db.String(100)) birthDate = db.Column(db.DateTime) email = db.Column(db.String(100)) username = db.Column(db.String(100)) password = db.Column(db.String(100)) phoneNumber = db.Column(db.String(100)) passportCode = db.Column(db.String(100)) secret_key = db.Column(db.String(1000), nullable=False, default=random_gen()) description = db.Column(db.String(500)) flatId = db.Column(db.Integer, db.ForeignKey("flats.id")) typeId = db.Column(db.Integer, db.ForeignKey("resident_types.id")) dateAdded = db.Column(db.DateTime, nullable=False, default=datetime.now) rfidTags = db.relationship('RfidTags', backref='residents', lazy=True)
class Devices(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) ip = db.Column(db.String(100)) barcode = db.Column(db.String(100)) device_key = db.Column(db.String(1000), nullable=False, default=random_gen()) command = db.Column(db.String(100), nullable=False) state = db.Column(db.Integer, nullable=False, default=0) description = db.Column(db.String(500)) typeId = db.Column(db.Integer, db.ForeignKey("device_types.id")) flatId = db.Column(db.Integer, db.ForeignKey("flats.id")) roomId = db.Column(db.Integer, db.ForeignKey("rooms.id")) dateAdded = db.Column(db.DateTime, nullable=False, default=datetime.now) pins = db.relationship('Pins', backref='devices', lazy='joined') sensors = db.relationship('Sensors', backref='devices', lazy='joined') schedules = db.relationship('Schedules', backref='devices', lazy=True)