package helpers

import (
	"context"

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

// AccountManager defines the interface for account management operations
type AccountManager interface {
	// DeleteOrganization deletes an organization and all its associated data
	// The caller is responsible for wrapping this in a transaction
	DeleteOrganization(ctx context.Context, orgRef bson.ObjectID) error

	// DeleteAccount deletes an account and all its associated data
	// The caller is responsible for wrapping this in a transaction
	DeleteAccount(ctx context.Context, accountRef bson.ObjectID) error

	// DeleteAll deletes all data for a given account and organization
	// The caller is responsible for wrapping this in a transaction
	DeleteAll(ctx context.Context, accountRef, organizationRef bson.ObjectID) error
}
