package invitation import ( "context" "github.com/tech/sendico/pkg/auth" "github.com/tech/sendico/pkg/model" "go.mongodb.org/mongo-driver/v2/bson" ) type DB interface { auth.ProtectedDB[*model.Invitation] GetPublic(ctx context.Context, invitationRef bson.ObjectID) (*model.PublicInvitation, error) Accept(ctx context.Context, invitationRef bson.ObjectID) error Decline(ctx context.Context, invitationRef bson.ObjectID) error List(ctx context.Context, accountRef, organizationRef, _ bson.ObjectID, cursor *model.ViewCursor) ([]model.Invitation, error) DeleteCascade(ctx context.Context, accountRef, statusRef bson.ObjectID) error SetArchived(ctx context.Context, accountRef, organizationRef, invitationRef bson.ObjectID, archived, cascade bool) error }