| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # -*- coding: utf-8 -*-
- """
- Sync-Befehle fuer die Datensynchronisation zwischen Standalone und Server.
- """
- from dataclasses import dataclass, field
- from trixy_core.network.cmd.base import CommandMessage
- @dataclass
- class SyncPush(CommandMessage):
- """
- Push von geaenderten Items. Bidirektional.
- Standalone → Server: Lokale Aenderungen senden
- Server → Standalone: Server-Aenderungen senden (als Teil von SyncResponse)
- """
- items: list[dict] = field(default_factory=list)
- @dataclass
- class SyncRequest(CommandMessage):
- """
- Anfrage nach Server-Aenderungen. Standalone → Server.
- Der Standalone sendet den letzten Sync-Zeitpunkt,
- der Server antwortet mit allen Aenderungen seit diesem Zeitpunkt.
- """
- since: str = ""
- @dataclass
- class SyncResponse(CommandMessage):
- """
- Antwort mit Server-Items. Server → Standalone.
- Enthaelt alle Items die seit 'since' geaendert wurden
- und den Server-Zeitpunkt fuer den naechsten Sync.
- """
- items: list[dict] = field(default_factory=list)
- server_time: str = ""
- @dataclass
- class SyncAck(CommandMessage):
- """
- Bestaetigung fuer empfangene Items.
- Wird nach erfolgreichem Merge gesendet.
- """
- accepted_count: int = 0
|