package doctor

import (
	"fmt"

	"github.com/tidbcloud/controlplane9/internal/config"
	"github.com/tidbcloud/controlplane9/internal/pressure"
)

// CheckLocalPressure reports expected Docker/k3d pressure from the selected
// service graph. It is informational and does not fail doctor, because pressure
// is a persona choice rather than a correctness preflight blocker.
func CheckLocalPressure(r *Result, session *config.SessionConfig) {
	report := pressure.Build(session)
	message := "local pressure report unavailable"
	if report.Summary != "" {
		message = report.Summary
	}
	if report.Persona != "" {
		message = fmt.Sprintf("%s (%s)", message, report.Persona)
	}
	r.Add(&Check{
		Name:    "local-pressure",
		Level:   LevelPass,
		Message: message,
		Details: pressure.FormatDetails(&report),
	})
}
