feat: add account-scoped data synchronization

This commit is contained in:
2026-09-22 09:58:58 +08:00
parent ab9ff389f2
commit 72e040546a
37 changed files with 4252 additions and 159 deletions
+16 -1
View File
@@ -255,7 +255,15 @@ public sealed record RemoteAccountSummary(
[property: JsonPropertyName("active")] bool Active,
[property: JsonPropertyName("verified")] bool Verified,
[property: JsonPropertyName("allowed_group_count")] int AllowedGroupCount,
[property: JsonPropertyName("allowed_private_count")] int AllowedPrivateCount);
[property: JsonPropertyName("allowed_private_count")] int AllowedPrivateCount)
{
[JsonPropertyName("allowed_chats")]
public IReadOnlyList<RemoteAllowedChatSummary> AllowedChats { get; init; } = [];
}
public sealed record RemoteAllowedChatSummary(
[property: JsonPropertyName("chat_id")] string ChatId,
[property: JsonPropertyName("chat_type")] ReportingChatType ChatType);
public sealed record RemoteNodeRegistrationResponse(
[property: JsonPropertyName("node_id")] string NodeId,
@@ -264,6 +272,13 @@ public sealed record RemoteNodeRegistrationResponse(
[property: JsonPropertyName("correlation_id")] string CorrelationId,
[property: JsonPropertyName("connection_id")] string? ConnectionId = null);
public sealed record RemoteDataSyncStatus(
[property: JsonPropertyName("state")] string State,
[property: JsonPropertyName("source_generation")] string SourceGeneration,
[property: JsonPropertyName("confirmed_sequence")] long ConfirmedSequence,
[property: JsonPropertyName("confirmed_cursor")] string ConfirmedCursor,
[property: JsonPropertyName("last_success_at")] DateTimeOffset? LastSuccessAt = null);
public sealed record RemoteHeartbeatResponse(
[property: JsonPropertyName("node_id")] string NodeId,
[property: JsonPropertyName("status")] RemoteNodeStatus Status,