41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package repositories
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gitea.hostxtra.co.uk/mrhid6/notely/backend/internal/domain/entities"
|
|
"go.mongodb.org/mongo-driver/v2/bson"
|
|
)
|
|
|
|
// AccountRecoveryRepository defines account recovery operations
|
|
type AccountRecoveryRepository interface {
|
|
CreateRecovery(ctx context.Context, recovery *entities.AccountRecovery) error
|
|
GetRecoveryByToken(ctx context.Context, token string) (*entities.AccountRecovery, error)
|
|
MarkRecoveryUsed(ctx context.Context, id bson.ObjectID) error
|
|
}
|
|
|
|
// FeatureFlagRepository defines app feature-flag operations.
|
|
type FeatureFlagRepository interface {
|
|
GetFeatureFlags(ctx context.Context) (*entities.FeatureFlags, error)
|
|
UpdateFeatureFlags(ctx context.Context, flags *entities.FeatureFlags) error
|
|
}
|
|
|
|
// Additional repository extensions
|
|
type (
|
|
// SpaceRepository extensions
|
|
SpaceRepositoryExt interface {
|
|
SpaceRepository
|
|
}
|
|
|
|
// MembershipRepository extensions
|
|
MembershipRepositoryExt interface {
|
|
MembershipRepository
|
|
GetUserMemberships(ctx context.Context, userID bson.ObjectID) ([]*entities.Membership, error)
|
|
}
|
|
|
|
// NoteRepository extensions
|
|
NoteRepositoryExt interface {
|
|
NoteRepository
|
|
}
|
|
)
|