package organization

import (
	"context"

	"github.com/tech/sendico/pkg/auth"
	"github.com/tech/sendico/pkg/model"
	"go.mongodb.org/mongo-driver/v2/bson"
)

// DB is the interface which must be implemented by all db drivers
type DB interface {
	auth.ProtectedDB[*model.Organization]
	List(ctx context.Context, accountRef bson.ObjectID, cursor *model.ViewCursor) ([]model.Organization, error)
	ListOwned(ctx context.Context, accountRef bson.ObjectID) ([]model.Organization, error)
	SetArchived(ctx context.Context, accountRef, organizationRef bson.ObjectID, archived, cascade bool) error
}
