PostgresSyncClientRepository

Classes > Sync.Postgres > PostgresSyncClientRepository

Repository for managing sync clients in PostgreSQL. Implements spec Section 13 (Tombstone Retention) client tracking.

public static class PostgresSyncClientRepository

Methods

GetAll(NpgsqlConnection)

public static Result<IReadOnlyList<SyncClient>, SyncError> GetAll(NpgsqlConnection connection)

Gets all sync clients from _sync_clients table.

Parameters:

Name Type Description
connection NpgsqlConnection PostgreSQL connection.

Returns: SyncError> - List of sync clients or database error.

GetByOrigin(NpgsqlConnection, string)

public static Result<SyncClient?, SyncError> GetByOrigin(NpgsqlConnection connection, string originId)

Gets a sync client by origin ID.

Parameters:

Name Type Description
connection NpgsqlConnection PostgreSQL connection.
originId String Origin ID to look up.

Returns: SyncError> - Sync client if found, null if not found, or database error.

Upsert(NpgsqlConnection, SyncClient)

public static Result<bool, SyncError> Upsert(NpgsqlConnection connection, SyncClient client)

Upserts a sync client record.

Parameters:

Name Type Description
connection NpgsqlConnection PostgreSQL connection.
client SyncClient Client to upsert.

Returns: SyncError> - Success or database error.

Delete(NpgsqlConnection, string)

public static Result<bool, SyncError> Delete(NpgsqlConnection connection, string originId)

Deletes a sync client by origin ID.

Parameters:

Name Type Description
connection NpgsqlConnection PostgreSQL connection.
originId String Origin ID to delete.

Returns: SyncError> - Success or database error.

GetMinVersion(NpgsqlConnection)

public static Result<long, SyncError> GetMinVersion(NpgsqlConnection connection)

Gets the minimum sync version across all clients.

Parameters:

Name Type Description
connection NpgsqlConnection PostgreSQL connection.

Returns: SyncError> - Minimum version or 0 if no clients.