#pragma once

#include "CoreMinimal.h"
#include "ERewardType.h"
#include "CharacterRewardViewData.h"
#include "CurrencyProgressionRewardViewData.h"
#include "CustomizationRewardViewData.h"
#include "UObject/SoftObjectPtr.h"
#include "RewardWrapperViewData.generated.h"

class UAkAudioEvent;

USTRUCT(BlueprintType)
struct FRewardWrapperViewData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	ERewardType RewardType;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FCharacterRewardViewData CharacterRewardViewData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FCurrencyProgressionRewardViewData CurrencyProgressionRewardViewData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FCustomizationRewardViewData CustomizationRewardViewData;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FString EventThemeLabel;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	TSoftObjectPtr<UAkAudioEvent> DesiredAudioEvent;

public:
	DBDUIVIEWINTERFACES_API FRewardWrapperViewData();
};

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