2026-05-12 17:24:53 +08:00

41 lines
1.3 KiB
Go

package controller
import (
"context"
"github.com/openimsdk/open-im-server/v3/pkg/common/storage/database"
"github.com/openimsdk/open-im-server/v3/pkg/common/storage/model"
)
// GroupMuteDatabase per-user group notification mute.
type GroupMuteDatabase interface {
Upsert(ctx context.Context, mute *model.GroupMute) error
Delete(ctx context.Context, ownerUserID, groupID string) error
ListActiveMutedUserIDs(ctx context.Context, groupID string, candidateUserIDs []string) ([]string, error)
Get(ctx context.Context, ownerUserID, groupID string) (*model.GroupMute, error)
}
type groupMuteDatabase struct {
db database.GroupMute
}
func NewGroupMuteDatabase(db database.GroupMute) GroupMuteDatabase {
return &groupMuteDatabase{db: db}
}
func (g *groupMuteDatabase) Upsert(ctx context.Context, mute *model.GroupMute) error {
return g.db.Upsert(ctx, mute)
}
func (g *groupMuteDatabase) Delete(ctx context.Context, ownerUserID, groupID string) error {
return g.db.Delete(ctx, ownerUserID, groupID)
}
func (g *groupMuteDatabase) ListActiveMutedUserIDs(ctx context.Context, groupID string, candidateUserIDs []string) ([]string, error) {
return g.db.ListActiveMutedUserIDs(ctx, groupID, candidateUserIDs)
}
func (g *groupMuteDatabase) Get(ctx context.Context, ownerUserID, groupID string) (*model.GroupMute, error) {
return g.db.Get(ctx, ownerUserID, groupID)
}