24 lines
1.0 KiB
Go
24 lines
1.0 KiB
Go
package papitemplate
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/db/repository/builder"
|
|
"github.com/tech/sendico/pkg/model"
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
type ProtectedDB[T any] interface {
|
|
Create(ctx context.Context, accountRef, organizationRef primitive.ObjectID, object *T) error
|
|
Get(ctx context.Context, accountRef, objectRef primitive.ObjectID, result *T) error
|
|
Update(ctx context.Context, accountRef primitive.ObjectID, object *T) error
|
|
Delete(ctx context.Context, accountRef, objectRef primitive.ObjectID) error
|
|
DeleteCascadeAuth(ctx context.Context, accountRef, objectRef primitive.ObjectID) error
|
|
SetArchived(ctx context.Context, accountRef, organizationRef, objectRef primitive.ObjectID, isArchived, cascade bool) error
|
|
List(ctx context.Context, accountRef, organizationRef, parentRef primitive.ObjectID, cursor *model.ViewCursor) ([]T, error)
|
|
}
|
|
|
|
type ReorderDB interface {
|
|
Reorder(ctx context.Context, accountRef, objectRef primitive.ObjectID, newIndex int, filter builder.Query) error
|
|
}
|