Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
+31
View File
@@ -0,0 +1,31 @@
from sqlalchemy import Column, DateTime, String, Text
from app import db
from .base import TimestampMixin, default_uuid
class KioskDevice(db.Model, TimestampMixin):
"""Persistent registry of kiosk terminals."""
__tablename__ = "kiosk_device"
id = Column(String(36), primary_key=True, default=default_uuid)
device_fingerprint = Column(String(255), nullable=True)
display_name = Column(String(120), nullable=False, default="terminal")
status = Column(String(20), nullable=False, default="pending") # pending|active|revoked
access_slug = Column(String(64), nullable=True, unique=True, index=True)
last_seen_at = Column(DateTime, nullable=True)
last_ip = Column(String(45), nullable=True)
class KioskPairToken(db.Model):
"""One-time short-lived token for QR pairing."""
__tablename__ = "kiosk_pair_token"
id = Column(String(36), primary_key=True, default=default_uuid)
token = Column(String(255), nullable=False, unique=True, index=True)
device_id = Column(String(36), nullable=False, index=True)
expires_at = Column(DateTime, nullable=False)
used_at = Column(DateTime, nullable=True)
issued_for = Column(Text, nullable=True)