#pragma once

#include "NoesisInstance.h"
#include "NoesisEnums.h"

#include "BasicNoesisInstance.generated.h"

UCLASS(BlueprintType)
class UNoesisViewModelExample : public UObject
{
	GENERATED_BODY()

public:
	void SetVisibility(ENoesisVisibility NewVisibility);

protected:
	UPROPERTY(BlueprintReadWrite)
	ENoesisVisibility Visibility = ENoesisVisibility::Visible;
};

/* Noesis Instance Class Demo for enums not working */
UCLASS(Abstract)
class UBasicNoesisInstance : public UNoesisInstance
{
	GENERATED_BODY()

public:
	virtual void NativeConstruct() override;

	UPROPERTY()
	UNoesisViewModelExample* ViewModel = nullptr;
};