// Package handlers re-exports generation job handlers from the shared package.
// The worker registers these handlers to process queue jobs.
package handlers

import (
	"{{GO_MODULE}}/pkg/generation"
	"{{GO_MODULE}}/pkg/logging"
	"{{GO_MODULE}}/pkg/mediagen"
	"{{GO_MODULE}}/pkg/queue"
	"{{GO_MODULE}}/pkg/realtime"
	"{{GO_MODULE}}/pkg/storage"
	"{{GO_MODULE}}/pkg/textgen"
)

// ImageHandler returns a queue.Handler that processes image generation jobs.
func ImageHandler(mg *mediagen.Manager, store storage.Store, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
	return generation.ImageHandler(mg, store, pub, logger)
}

// VideoHandler returns a queue.Handler that processes video generation jobs.
func VideoHandler(mg *mediagen.Manager, store storage.Store, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
	return generation.VideoHandler(mg, store, pub, logger)
}

// TextHandler returns a queue.Handler that processes text generation jobs with streaming.
func TextHandler(tg *textgen.Manager, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
	return generation.TextHandler(tg, pub, logger)
}

// ChatResponseHandler returns a queue.Handler that generates AI chat responses.
func ChatResponseHandler(tg *textgen.Manager, pub realtime.EventPublisher, logger *logging.Logger) queue.Handler {
	return generation.ChatResponseHandler(tg, pub, logger)
}
