// Package chassis is the service framework for {{PROJECT_NAME}}.
// It re-exports key types from pkg/app, pkg/httperror, pkg/httpresponse,
// and pkg/httpvalidation for convenience.
//
// Example:
//
//	func main() {
//	    svc := chassis.New("my-service", chassis.WithDefaultPort(8080))
//	    svc.GET("/users/{id}", app.Wrap(handlers.GetUser))
//	    svc.Run()
//	}
package chassis

import "{{GO_MODULE}}/pkg/app"

// Re-export core types
type App = app.App
type Router = app.Router
type Option = app.Option
type HandlerFunc = app.HandlerFunc
type HealthChecker = app.HealthChecker
type HealthConfig = app.HealthConfig

// Re-export constructors
var (
	New              = app.New
	WithDefaultPort  = app.WithDefaultPort
	WithLogger       = app.WithLogger
	Wrap             = app.Wrap
	WrapWithLogger   = app.WrapWithLogger
	Bind             = app.Bind
	BindAndValidate  = app.BindAndValidate
	BindStrict       = app.BindStrict
	NewHealthHandler = app.NewHealthHandler
	PingChecker      = app.PingChecker
	HTTPChecker      = app.HTTPChecker
)
