#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "EventObjectiveTrackerViewData.h"
#include "EventEntryPopupSkinUIData.h"
#include "EventInfoViewInterface.generated.h"

class UEventTabViewData;

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

class DBDUIVIEWINTERFACES_API IEventInfoViewInterface : public IInterface
{
	GENERATED_BODY()

public:
	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetEventObjectiveTrackerVisibility(const bool isVisible);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetEventObjectiveTrackerData(const FEventObjectiveTrackerViewData& viewData);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetChallengesButtonVisibility(bool isVisible);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void SetChallengesButtonEnabled(bool isEnabled);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void Init(UEventTabViewData* viewData, const FEventEntryPopupSkinUIData& skinData);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void GetRowDataFromEventObjectiveTrackerSkinDataTable(const FString& eventId);

	UFUNCTION(BlueprintCallable, BlueprintNativeEvent)
	void Deinit();

};
