// Package main is the entry point for the {{COMPONENT_NAME}} service.
package main

import (
	"{{GO_MODULE}}/pkg/app"
	"{{GO_MODULE}}/pkg/logging"
	"{{GO_MODULE}}/services/{{COMPONENT_NAME}}/internal/adapter/memory"
	"{{GO_MODULE}}/services/{{COMPONENT_NAME}}/internal/api"
	"{{GO_MODULE}}/services/{{COMPONENT_NAME}}/internal/service"
)

func main() {
	// Create logger
	logger := logging.Default()

	// Create adapters (repositories)
	exampleRepo := memory.NewExampleRepository()

	// Create services (business logic)
	exampleService := service.NewExampleService(exampleRepo, logger)

	// Create application
	application := app.New("{{COMPONENT_NAME}}", app.WithDefaultPort({{PORT}}))

	// Register routes with dependency injection
	api.RegisterRoutes(application, exampleService)

	// Start server
	application.Run()
}
