SekiPOS server sync

This commit is contained in:
2026-06-23 15:20:14 -04:00
parent 5704980dbd
commit ccd1836d38
15 changed files with 1063 additions and 149 deletions

View File

@@ -66,6 +66,49 @@ def init_db(db_file):
subtotal REAL,
FOREIGN KEY(ticket_id) REFERENCES debtor_tickets(id) ON DELETE CASCADE)''')
conn.execute('''CREATE TABLE IF NOT EXISTS sync_deletions
(id INTEGER PRIMARY KEY AUTOINCREMENT,
entity_type TEXT NOT NULL,
entity_uuid TEXT NOT NULL,
deleted_at TEXT DEFAULT (datetime('now')),
synced_at TEXT)''')
# --- MIGRATIONS ---
for stmt in [
"ALTER TABLE sales ADD COLUMN uuid TEXT",
"ALTER TABLE sales ADD COLUMN synced_at TEXT",
"ALTER TABLE products ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
"ALTER TABLE products ADD COLUMN updated_by TEXT",
"ALTER TABLE expenses ADD COLUMN uuid TEXT",
"ALTER TABLE expenses ADD COLUMN synced_at TEXT",
"ALTER TABLE debtors ADD COLUMN uuid TEXT",
"ALTER TABLE debtors ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
"ALTER TABLE debtors ADD COLUMN updated_by TEXT",
"ALTER TABLE debtor_tickets ADD COLUMN uuid TEXT",
"ALTER TABLE debtor_tickets ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
"ALTER TABLE debtor_tickets ADD COLUMN updated_by TEXT",
"ALTER TABLE dicom ADD COLUMN uuid TEXT",
"ALTER TABLE dicom ADD COLUMN updated_at TEXT DEFAULT CURRENT_TIMESTAMP",
"ALTER TABLE dicom ADD COLUMN updated_by TEXT",
]:
try:
conn.execute(stmt)
except Exception:
pass
for tbl in ['products', 'debtors', 'debtor_tickets', 'dicom']:
conn.execute(f"UPDATE {tbl} SET updated_at = datetime('now') WHERE updated_at IS NULL")
for idx in [
"CREATE UNIQUE INDEX IF NOT EXISTS idx_debtors_uuid ON debtors(uuid)",
"CREATE UNIQUE INDEX IF NOT EXISTS idx_dicom_uuid ON dicom(uuid)",
"CREATE UNIQUE INDEX IF NOT EXISTS idx_expenses_uuid ON expenses(uuid)",
]:
try:
conn.execute(idx)
except Exception:
pass
user = conn.execute('SELECT * FROM users WHERE username = ?', ('admin',)).fetchone()
if not user:
from werkzeug.security import generate_password_hash