Files
sendico/api/pkg/db/template/interface.go
2026-01-31 00:26:42 +01:00

22 lines
763 B
Go

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
}