22 lines
790 B
Go
22 lines
790 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/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
|
|
}
|