package module

import (
	"nadir/internal/rbac"

	"github.com/danielgtaylor/huma/v2"
)

type Module interface {
	ID() string
	Permissions() []rbac.Permission // permissions this module exposes (no "*")
	Register(api huma.API)
}

// Title returns the display name for a module ID, capitalizing the first
// letter (modules are single lowercase words: "system" -> "System").
func Title(id string) string {
	if id == "" {
		return ""
	}
	b := id[0]
	if b >= 'a' && b <= 'z' {
		b -= 'a' - 'A'
	}
	return string(b) + id[1:]
}
