#pragma once

#include "CoreMinimal.h"
#include "UniquelyIdentifiedAnalytic.h"
#include "StepCompleteTime.h"
#include "GameInitAnalytics.generated.h"

USTRUCT(BlueprintType)
struct FGameInitAnalytics : public FUniquelyIdentifiedAnalytic
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString InitGuid;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString BootGuid;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString StepName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString ParentBootStepName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 StepIndex;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool Success;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString CompleteStepState;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FStepCompleteTime> PreviouslyCompletedSteps;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString StepStartTime;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float StepElapsedTime;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float TotalElapsedTime;

	UPROPERTY(EditAnywhere)
	uint32 FailureCount;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString AdditionalInfo;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString Country;

public:
	DBDANALYTICS_API FGameInitAnalytics();
};

FORCEINLINE uint32 GetTypeHash(const FGameInitAnalytics) { return 0; }
