24 lines
1.1 KiB
Go
24 lines
1.1 KiB
Go
package domain
|
||
|
||
import "context"
|
||
|
||
type Repository interface {
|
||
// Trends are global-ish; refresh rewrites owner's view cache
|
||
ListTrends(ctx context.Context, ownerUID int64) ([]*TrendItem, error)
|
||
SaveTrends(ctx context.Context, ownerUID int64, items []*TrendItem) error
|
||
|
||
ListElements(ctx context.Context, ownerUID int64) ([]*Element, error)
|
||
SaveElement(ctx context.Context, e *Element) error
|
||
DeleteElement(ctx context.Context, id string) error
|
||
GetElement(ctx context.Context, id string) (*Element, error)
|
||
|
||
// Sessions — 多對話;GetSession 回 active(無則建新)
|
||
ListSessions(ctx context.Context, ownerUID int64) ([]*Session, error)
|
||
GetSession(ctx context.Context, ownerUID int64) (*Session, error) // active
|
||
GetSessionByID(ctx context.Context, ownerUID int64, id string) (*Session, error)
|
||
SaveSession(ctx context.Context, s *Session) error
|
||
DeleteSessionByID(ctx context.Context, ownerUID int64, id string) error
|
||
GetActiveSessionID(ctx context.Context, ownerUID int64) (string, error)
|
||
SetActiveSessionID(ctx context.Context, ownerUID int64, sessionID string) error
|
||
}
|