package mongodb

import (
	"context"

	"github.com/pfeifferj/container-mom-go/pkg/operator/mongodb/api"
	"go.mongodb.org/mongo-driver/mongo"
)

// Interface defines the MongoDB client operations
type Interface interface {
	ListDeployments(ctx context.Context) ([]api.MongoDeployment, error)
	GetDeployment(ctx context.Context, id string) (*api.MongoDeployment, error)
	CreateDeployment(ctx context.Context, deployment *api.MongoDeployment) error
	UpdateDeployment(ctx context.Context, deployment *api.MongoDeployment) error
	DeleteDeployment(ctx context.Context, id string) error
	DeleteAllDeployments(ctx context.Context) error
	GetClient() *mongo.Client
	Disconnect(ctx context.Context) error
	Database(name string) *mongo.Database
}

// Ensure Client implements Interface
var _ Interface = (*Client)(nil)
