define stat and metrics model
This commit is contained in:
@@ -11,10 +11,87 @@ type Statistics struct {
|
||||
Duration time.Duration `json:"duration"`
|
||||
|
||||
InterfaceType InterfaceType `json:"interface_type"`
|
||||
TaskRuns int `json:"task_runs"`
|
||||
TasksCompleted int `json:"tasks_completed"`
|
||||
ButtonClicks ButtonClicks `json:"button_clicks"`
|
||||
TasksFailed int `json:"tasks_failed"`
|
||||
|
||||
TotalDurationMs int64 `json:"total_duration_ms"`
|
||||
AverageDurationMs int64 `json:"average_duration_ms"`
|
||||
|
||||
TotalUserActions int `json:"total_user_actions"`
|
||||
QuestionnairesCompleted int `json:"questionnaires_completed"`
|
||||
QuestionnairesAbandoned int `json:"questionnaires_abandoned"`
|
||||
|
||||
ValidationAttempts int `json:"validation_attempts"`
|
||||
ValidationSuccesses int `json:"validation_successes"`
|
||||
ValidationFailures int `json:"validation_failures"`
|
||||
ValidationChecksPassed int `json:"validation_checks_passed"`
|
||||
ValidationChecksFailed int `json:"validation_checks_failed"`
|
||||
|
||||
LastTaskName string `json:"last_task_name"`
|
||||
LastRunID int `json:"last_run_id"`
|
||||
ButtonClicks ButtonClicks `json:"button_clicks"`
|
||||
}
|
||||
|
||||
type ButtonClicks struct {
|
||||
Clicks int `json:"clicks"`
|
||||
}
|
||||
|
||||
type TaskMetricsFile struct {
|
||||
TaskName string `json:"task_name"`
|
||||
UpdatedAt time.Time `json:"updated_at"`
|
||||
Summary TaskStatsSummary `json:"summary"`
|
||||
Runs []TaskRunMetrics `json:"runs"`
|
||||
}
|
||||
|
||||
type TaskStatsSummary struct {
|
||||
TotalRuns int `json:"total_runs"`
|
||||
CompletedRuns int `json:"completed_runs"`
|
||||
IncompleteRuns int `json:"incomplete_runs"`
|
||||
TotalDurationMs int64 `json:"total_duration_ms"`
|
||||
AverageDurationMs int64 `json:"average_duration_ms"`
|
||||
TotalUserActions int `json:"total_user_actions"`
|
||||
QuestionnairesCompleted int `json:"questionnaires_completed"`
|
||||
QuestionnairesAbandoned int `json:"questionnaires_abandoned"`
|
||||
ValidationAttempts int `json:"validation_attempts"`
|
||||
ValidationSuccesses int `json:"validation_successes"`
|
||||
ValidationFailures int `json:"validation_failures"`
|
||||
ValidationChecksPassed int `json:"validation_checks_passed"`
|
||||
ValidationChecksFailed int `json:"validation_checks_failed"`
|
||||
LastInterfaceType InterfaceType `json:"last_interface_type"`
|
||||
FirstRunStartedAt time.Time `json:"first_run_started_at"`
|
||||
LastRunStartedAt time.Time `json:"last_run_started_at"`
|
||||
LastRunEndedAt time.Time `json:"last_run_ended_at"`
|
||||
}
|
||||
|
||||
type TaskRunMetrics struct {
|
||||
RunID int `json:"run_id"`
|
||||
TaskName string `json:"task_name"`
|
||||
InterfaceType InterfaceType `json:"interface_type"`
|
||||
StartedAt time.Time `json:"started_at"`
|
||||
EndedAt time.Time `json:"ended_at"`
|
||||
DurationMs int64 `json:"duration_ms"`
|
||||
Completed bool `json:"completed"`
|
||||
ValidationAttempts int `json:"validation_attempts"`
|
||||
ValidationSuccesses int `json:"validation_successes"`
|
||||
ValidationFailures int `json:"validation_failures"`
|
||||
ValidationChecksPassed int `json:"validation_checks_passed"`
|
||||
ValidationChecksFailed int `json:"validation_checks_failed"`
|
||||
LastValidationMessage string `json:"last_validation_message,omitempty"`
|
||||
QuestionnaireCompleted bool `json:"questionnaire_completed"`
|
||||
QuestionnaireUserQuit bool `json:"questionnaire_user_quit"`
|
||||
QuestionnaireAnswers map[string]any `json:"questionnaire_answers,omitempty"`
|
||||
Logs []TaskLogEntry `json:"logs"`
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
|
||||
type TaskLogEntry struct {
|
||||
Timestamp time.Time `json:"timestamp"`
|
||||
Level string `json:"level"`
|
||||
Message string `json:"message"`
|
||||
Source string `json:"source,omitempty"`
|
||||
Action string `json:"action,omitempty"`
|
||||
Target string `json:"target,omitempty"`
|
||||
Result string `json:"result,omitempty"`
|
||||
Attempt int `json:"attempt,omitempty"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user