#pragma once

#include "CoreMinimal.h"
#include "UniquelyIdentifiedAnalytic.h"
#include "PostGameAnalyticsBase.generated.h"

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

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString MatchId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString KrakenMatchId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString GameMode;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 BloodwebPoints;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 BonusEvent;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 SpecialEventPoints;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 SpecialEventPointsBonus;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 MiscPoints;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 MatchIncentive;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 GoNextSystemBonus;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float GoNextSystemMultiplier;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 LteIncentive;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float MatchmakingIncentivePercentage;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float BaseIncentivePercentage;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float HiddenBaseIncentivePercentage;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float MatchmakingIncentiveRatio;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float GameDuration;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString CharacterName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 Rank;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 PipsGainedOrLost;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString MatchEndReason;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool UsedSurrenderOption;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool IsTutorialBotMatch;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString OnboardingModeId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 OnboardingEnabled;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 OnboardingABTestingEnabled;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 OnboardingNumberActiveModes;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 OnboardingNewAssignedMode;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	float ExactPing;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString ServerSessionId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FString ServerRegion;

public:
	DBDANALYTICS_API FPostGameAnalyticsBase();
};

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