32 lines
1.9 KiB
Go
32 lines
1.9 KiB
Go
package store
|
|
|
|
import (
|
|
"context"
|
|
|
|
"telesrv/internal/domain"
|
|
)
|
|
|
|
// DialogStore 持久化用户会话摘要。
|
|
type DialogStore interface {
|
|
ListByUser(ctx context.Context, userID int64, filter domain.DialogFilter) (domain.DialogList, error)
|
|
ListByPeers(ctx context.Context, userID int64, peers []domain.Peer) (domain.DialogList, error)
|
|
Upsert(ctx context.Context, userID int64, dialog domain.Dialog) error
|
|
SaveDraft(ctx context.Context, userID int64, draft domain.DialogDraft) error
|
|
DeleteDraft(ctx context.Context, userID int64, peer domain.Peer, topMessageID int) (bool, error)
|
|
ListDrafts(ctx context.Context, userID int64, limit int) ([]domain.DialogDraft, error)
|
|
ClearDrafts(ctx context.Context, userID int64, limit int) ([]domain.DialogDraft, error)
|
|
MarkRead(ctx context.Context, userID int64, peer domain.Peer, maxID int) (domain.ReadHistoryResult, error)
|
|
SetPinned(ctx context.Context, userID int64, peer domain.Peer, pinned bool) (bool, error)
|
|
ReorderPinned(ctx context.Context, userID int64, order []domain.Peer, force bool) error
|
|
SetUnreadMark(ctx context.Context, userID int64, peer domain.Peer, unread bool) (bool, error)
|
|
ListUnreadMarked(ctx context.Context, userID int64) ([]domain.Peer, error)
|
|
SetPeerSettingsBarHidden(ctx context.Context, userID int64, peer domain.Peer) (bool, error)
|
|
PeerSettingsBarHidden(ctx context.Context, userID int64, peer domain.Peer) (bool, error)
|
|
ListFolders(ctx context.Context, userID int64) (domain.DialogFolderList, error)
|
|
GetFolder(ctx context.Context, userID int64, folderID int) (domain.DialogFolder, bool, error)
|
|
UpsertFolder(ctx context.Context, userID int64, folder domain.DialogFolder) error
|
|
DeleteFolder(ctx context.Context, userID int64, folderID int) error
|
|
ReorderFolders(ctx context.Context, userID int64, order []int) error
|
|
SetFolderTagsEnabled(ctx context.Context, userID int64, enabled bool) error
|
|
EditPeerFolders(ctx context.Context, userID int64, peers []domain.FolderPeerUpdate) error
|
|
}
|