package mongodb

import (
	"context"

	"go.mongodb.org/mongo-driver/mongo"
)

// Interface defines the MongoDB client operations
type Interface interface {
	ListDeployments(ctx context.Context) ([]MongoDeployment, error)
	GetDeployment(ctx context.Context, id string) (*MongoDeployment, error)
	CreateDeployment(ctx context.Context, deployment *MongoDeployment) error
	UpdateDeployment(ctx context.Context, deployment *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)
