merged from gramsrv upstream
This commit is contained in:
parent
79c64ee916
commit
21a0856587
651 changed files with 54774 additions and 4590 deletions
39
internal/store/dialog_list_snapshot_cache.go
Normal file
39
internal/store/dialog_list_snapshot_cache.go
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"telesrv/internal/domain"
|
||||
)
|
||||
|
||||
// DialogListSnapshotCacheKey identifies one all-built-in-folders owner header
|
||||
// base. OwnerHash is the durable dialog_owner generation and is part of the
|
||||
// shared cache key; shared channel generations are validated from Value.
|
||||
type DialogListSnapshotCacheKey struct {
|
||||
UserID int64
|
||||
OwnerHash int64
|
||||
}
|
||||
|
||||
// DialogListSnapshotCacheValue is a domain-only materialized owner projection.
|
||||
// It contains owner dialog facts and private top-message/peer payloads covered
|
||||
// by dialog_owner plus the recorded channel_base dependency hash. Shared
|
||||
// channel rows/top messages are hydrated through their channel-keyed caches so
|
||||
// they are not duplicated once per member. Cloud drafts are owner-scoped and
|
||||
// covered by dialog_owner, so they are materialized with Dialogs; presence,
|
||||
// privacy, notify settings and TL values remain response-time overlays.
|
||||
type DialogListSnapshotCacheValue struct {
|
||||
DependencyHash int64
|
||||
Dialogs []domain.Dialog
|
||||
Messages []domain.Message
|
||||
Users []domain.User
|
||||
State domain.UpdateState
|
||||
ArchiveSummary *domain.DialogArchiveSummary
|
||||
}
|
||||
|
||||
// DialogListSnapshotCache is a rebuildable shared L2. Transport, decode and
|
||||
// write failures are returned to the caller so production does not silently
|
||||
// stampede PostgreSQL through an unversioned fallback.
|
||||
type DialogListSnapshotCache interface {
|
||||
GetDialogListSnapshot(context.Context, DialogListSnapshotCacheKey) (DialogListSnapshotCacheValue, bool, error)
|
||||
PutDialogListSnapshot(context.Context, DialogListSnapshotCacheKey, DialogListSnapshotCacheValue) error
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue