package template import ( "context" "github.com/tech/sendico/pkg/db/repository/builder" "github.com/tech/sendico/pkg/db/storable" "go.mongodb.org/mongo-driver/v2/bson" ) type DB[T storable.Storable] interface { Create(ctx context.Context, object T) error InsertMany(ctx context.Context, objects []T) error Get(ctx context.Context, objectRef bson.ObjectID, result T) error Update(ctx context.Context, object T) error Patch(ctx context.Context, objectRef bson.ObjectID, patch builder.Patch) error Delete(ctx context.Context, objectRef bson.ObjectID) error DeleteMany(ctx context.Context, query builder.Query) error DeleteCascade(ctx context.Context, objectRef bson.ObjectID) error FindOne(ctx context.Context, query builder.Query, result T) error }