ogn-python/ogn_python/model/device.py

38 wiersze
1.2 KiB
Python
Czysty Zwykły widok Historia

2019-03-23 12:57:44 +00:00
from sqlalchemy.ext.hybrid import hybrid_property
2015-10-24 21:13:21 +00:00
2019-03-23 12:57:44 +00:00
from ogn_python import db
from .device_info import DeviceInfo
2015-10-24 21:13:21 +00:00
2019-02-10 12:10:19 +00:00
class Device(db.Model):
__tablename__ = 'devices'
2015-10-24 21:13:21 +00:00
2019-02-10 12:25:24 +00:00
id = db.Column(db.Integer, primary_key=True)
2018-01-19 18:14:57 +00:00
2019-03-04 21:14:13 +00:00
name = db.Column(db.String, index=True)
2019-02-10 12:25:24 +00:00
#address = db.Column(db.String(6), index=True)
address = db.Column(db.String, index=True)
firstseen = db.Column(db.DateTime, index=True)
lastseen = db.Column(db.DateTime, index=True)
aircraft_type = db.Column(db.SmallInteger, index=True)
stealth = db.Column(db.Boolean)
software_version = db.Column(db.Float(precision=2))
hardware_version = db.Column(db.SmallInteger)
real_address = db.Column(db.String(6))
2015-10-24 21:13:21 +00:00
def __repr__(self):
2016-06-21 17:34:05 +00:00
return "<Device: %s,%s,%s,%s,%s,%s>" % (
2015-11-15 18:31:58 +00:00
self.address,
2016-06-21 17:34:05 +00:00
self.aircraft_type,
self.stealth,
self.software_version,
self.hardware_version,
self.real_address)
2019-03-23 12:57:44 +00:00
@hybrid_property
def info(self):
query = db.session.query(DeviceInfo) \
.filter(DeviceInfo.address == self.address) \
.order_by(DeviceInfo.address_origin)
return query.first()