define stat and metrics model
This commit is contained in:
@@ -11,10 +11,87 @@ type Statistics struct {
|
|||||||
Duration time.Duration `json:"duration"`
|
Duration time.Duration `json:"duration"`
|
||||||
|
|
||||||
InterfaceType InterfaceType `json:"interface_type"`
|
InterfaceType InterfaceType `json:"interface_type"`
|
||||||
|
TaskRuns int `json:"task_runs"`
|
||||||
TasksCompleted int `json:"tasks_completed"`
|
TasksCompleted int `json:"tasks_completed"`
|
||||||
|
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"`
|
ButtonClicks ButtonClicks `json:"button_clicks"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type ButtonClicks struct {
|
type ButtonClicks struct {
|
||||||
Clicks int `json:"clicks"`
|
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