modified: blueprints/sync_server.py

modified:   core/sync.py
This commit is contained in:
2026-06-23 17:20:06 -04:00
parent 3fb95c1617
commit fec74e24c5
2 changed files with 18 additions and 2 deletions

View File

@@ -34,6 +34,16 @@ def sync_push():
for d in data.get('deletions', []):
et = d['entity_type']
eu = d['entity_uuid']
# Log to server's sync_deletions so other pulling clients see it
existing = conn.execute(
"SELECT id FROM sync_deletions WHERE entity_type = ? AND entity_uuid = ?",
(et, eu)
).fetchone()
if not existing:
conn.execute(
"INSERT INTO sync_deletions (entity_type, entity_uuid, deleted_at) VALUES (?, ?, ?)",
(et, eu, synced_at)
)
if et == 'debtor':
conn.execute("DELETE FROM debtors WHERE uuid = ?", (eu,))
elif et == 'ticket':

View File

@@ -113,8 +113,9 @@ class SyncManager:
# Expenses (immutable, synced_at IS NULL)
expenses = conn.execute(
"SELECT uuid, date, description, amount FROM expenses WHERE synced_at IS NULL"
"SELECT id, uuid, date, description, amount FROM expenses WHERE synced_at IS NULL"
).fetchall()
expense_ids = [e[0] for e in expenses]
# Deletions (immutable, synced_at IS NULL)
deletions = conn.execute(
@@ -140,7 +141,7 @@ class SyncManager:
],
"tickets": ticket_payloads,
"expenses": [
{"uuid": e[0], "date": e[1], "description": e[2], "amount": e[3]}
{"uuid": e[1], "date": e[2], "description": e[3], "amount": e[4]}
for e in expenses
],
"deletions": [
@@ -162,6 +163,11 @@ class SyncManager:
"UPDATE sales SET synced_at = ? WHERE id = ?",
[(now, sid) for sid in sale_ids]
)
if expense_ids:
conn.executemany(
"UPDATE expenses SET synced_at = ? WHERE id = ?",
[(now, eid) for eid in expense_ids]
)
if deletions:
conn.executemany(
"UPDATE sync_deletions SET synced_at = ? WHERE entity_type = ? AND entity_uuid = ?",