#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "UObject/SoftObjectPtr.h"
#include "EItemRarity.h"
#include "EItemAvailability.h"
#include "LoadoutTooltipData.h"
#include "MenuLoadoutPartViewData.generated.h"

class UTexture2D;

UCLASS(Blueprintable)
class DBDUIVIEWINTERFACES_API UMenuLoadoutPartViewData : public UObject
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FName ItemId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	TSoftObjectPtr<UTexture2D> IconTexture;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	EItemRarity Rarity;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	int32 StackCount;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool ShowStackCount;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FText ParentDisplayName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool IsParentAvailable;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool IsLocked;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	int32 UnlockableLevel;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	EItemAvailability Availability;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool IsEnabled;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient)
	FLoadoutTooltipData TooltipData;

public:
	UMenuLoadoutPartViewData();
};

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