package template import ( "context" "github.com/tech/sendico/pkg/db/repository/builder" "github.com/tech/sendico/pkg/db/storable" "go.mongodb.org/mongo-driver/bson/primitive" ) 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 primitive.ObjectID, result T) error Update(ctx context.Context, object T) error Patch(ctx context.Context, objectRef primitive.ObjectID, patch builder.Patch) error Delete(ctx context.Context, objectRef primitive.ObjectID) error DeleteMany(ctx context.Context, query builder.Query) error DeleteCascade(ctx context.Context, objectRef primitive.ObjectID) error FindOne(ctx context.Context, query builder.Query, result T) error }