package callbacks

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.Callback]
	SetArchived(ctx context.Context, accountRef, organizationRef, callbackRef bson.ObjectID, archived, cascade bool) error
	List(ctx context.Context, accountRef, organizationRef, _ bson.ObjectID, cursor *model.ViewCursor) ([]model.Callback, error)
	GetSigningSecretRef(ctx context.Context, accountRef, callbackRef bson.ObjectID) (string, error)
	SetSigningSecretRef(ctx context.Context, accountRef, callbackRef bson.ObjectID, secretRef string) error
	ClearSigningSecretRef(ctx context.Context, accountRef, callbackRef bson.ObjectID) error
}
