#pragma once

#include "CoreMinimal.h"
#include "EGameState.h"
#include "PrestigeViewData.h"
#include "PlayerCardViewData.h"
#include "TallyPlayerStatusViewData.generated.h"

class ULoadoutItemViewData;
class UMenuClassViewData;

USTRUCT(BlueprintType)
struct FTallyPlayerStatusViewData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FName CharacterIconPath;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FString PlayerId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FString PlatformAccountId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FString MirrorsId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FString PlayerName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FString CharacterName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	int32 PlayerScore;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	EGameState PlayerStatus;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	ULoadoutItemViewData* OfferingData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	TArray<ULoadoutItemViewData*> PerksData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	ULoadoutItemViewData* ItemData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	TArray<ULoadoutItemViewData*> AddonsData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	UMenuClassViewData* ClassData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FPrestigeViewData PrestigeData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool IsReported;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool IsReportable;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool IsKiller;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool IsMyScore;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool IsOffNetwork;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool ShowPortraitBorder;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	bool IsABot;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FPlayerCardViewData EquippedBanner;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FPlayerCardViewData EquippedBadge;

public:
	DBDUIVIEWINTERFACES_API FTallyPlayerStatusViewData();
};

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