package app

import (
	"log/slog"

	"github.com/tidbcloud/AgentTeam/internal/workspace/owner"
)

type WorkspaceAppHandler struct {
	installations                   AppInstallationService
	store                           Store
	searchEngineConnections         SearchEngineConnectionRuntimeStore
	searchEngineTester              SearchEngineConnectionTester
	extensionProviders              ExtensionProviderIndex
	serviceEventSubscriptionBlocker ServiceEventSubscriptionBlocker
	installationRequestProjector    AppInstallationRequestProjector
	realtime                        WorkspaceAppRealtime
	logger                          *slog.Logger
}

func (handler *WorkspaceAppHandler) emitWorkspaceAppsUpdated(workspaceID string) {
	if handler != nil && handler.realtime != nil {
		handler.realtime.EmitWorkspaceAppsUpdated(workspaceID)
	}
}

type WebhookHandler struct {
	store             Store
	providerSlug      string
	followupDeliverer FollowupDeliverer
	managedWorkspaces owner.ManagedWorkspaceSet
}
