25 lines
1.2 KiB
Python
25 lines
1.2 KiB
Python
# app/models/device_registration.py
|
|
# -----------------------------------
|
|
# Tracks iOS devices that have registered with the server.
|
|
# One row per physical device — upserted on every app foreground.
|
|
|
|
from app import db
|
|
from app.utils.time_utils import now_eastern
|
|
|
|
|
|
class DeviceRegistration(db.Model):
|
|
__tablename__ = 'device_registrations'
|
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
# Stable UUID generated on first launch and stored in iOS Keychain.
|
|
# Unique across all devices; survives app restarts but not device wipes.
|
|
device_id = db.Column(db.String(64), nullable=False, unique=True, index=True)
|
|
user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False, index=True)
|
|
device_name = db.Column(db.String(255), nullable=False, default='')
|
|
app_version = db.Column(db.String(32), nullable=False, default='')
|
|
ios_version = db.Column(db.String(32), nullable=False, default='')
|
|
registered_at = db.Column(db.DateTime, nullable=False, default=now_eastern)
|
|
last_seen_at = db.Column(db.DateTime, nullable=False, default=now_eastern)
|
|
|
|
user = db.relationship('User', backref=db.backref('devices', lazy='dynamic'))
|