#pragma once

#include "CoreMinimal.h"
#include "SubPresenter.h"
#include "EventEntryPopupSkinUIData.h"
#include "EventEntryRewardsSubPresenter.generated.h"

class UStoreCustomizationItemViewData;
class UEventEntryPresenter;
class UDisplayStandController;

UCLASS(Blueprintable)
class UEventEntryRewardsSubPresenter : public USubPresenter
{
	GENERATED_BODY()

protected:
	UPROPERTY(BlueprintReadWrite, Transient)
	TArray<UStoreCustomizationItemViewData*> _rewardsGridData;

	UPROPERTY(BlueprintReadWrite, Transient)
	TArray<UStoreCustomizationItemViewData*> _previewAreaRewardsData;

	UPROPERTY(BlueprintReadWrite, Transient, Instanced)
	UEventEntryPresenter* _parentPresenter;

	UPROPERTY(BlueprintReadWrite, Transient)
	UDisplayStandController* _displayStandController;

	UPROPERTY(BlueprintReadWrite, Transient)
	FEventEntryPopupSkinUIData _skinData;

protected:
	UFUNCTION(BlueprintCallable)
	void OnRewardGridItemClicked(const int32 selectedIndex);

	UFUNCTION(BlueprintCallable)
	void OnPreviewAreaItemClicked(const int32 selectedIndex);

	UFUNCTION(BlueprintCallable)
	void OnInstructionButtonClicked();

public:
	UEventEntryRewardsSubPresenter();
};

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