#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "CustomizationItemPreviewAreaViewData.h"
#include "ChallengesMenuStoreViewInterface.generated.h"

class UStoreCustomizationItemViewData;

UINTERFACE(Blueprintable)
class DBDUIVIEWINTERFACES_API UChallengesMenuStoreViewInterface : public UInterface
{
	GENERATED_BODY()
};

class DBDUIVIEWINTERFACES_API IChallengesMenuStoreViewInterface : public IInterface
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetSelectedReward(const int32 selectedIndex);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetPreviewAreaData(const FCustomizationItemPreviewAreaViewData& viewData);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetItemsData(const TArray<UStoreCustomizationItemViewData*>& customizationRewardsData, const int32 selectedIndex);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void Init();

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void EnableStoreButton(const bool enable);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void DeselectReward();

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void Deinit();

};
