This commit is contained in:
Robin Olsen
2026-03-03 14:07:03 +01:00
parent 4a6b40509c
commit 0b5d94b2ee

39
pkg/task/lifecycle.go Normal file
View File

@@ -0,0 +1,39 @@
package task
import (
"log/slog"
"github.com/LazyBachelor/LazyPM/internal/models"
)
type RunLifecycle struct {
collector *taskRunCollector
config Config
details models.TaskDetails
app *App
logger *slog.Logger
metricsStore MetricsStore
}
func NewRunLifecycle(app *App, config Config, details models.TaskDetails, iType InterfaceType, logger *slog.Logger) *RunLifecycle {
collector := newTaskRunCollector(details.Title, iType, logger)
config = config.WithActionLogger(func(action string) {
collector.recordUserAction(action)
})
var store MetricsStore
if config.StatisticsStoragePath != "" {
store = NewFileMetricsStore(config.StatisticsStoragePath, logger)
}
return &RunLifecycle{
collector: collector,
config: config,
details: details,
app: app,
logger: logger,
metricsStore: store,
}
}