#pragma once

#include "CoreMinimal.h"
#include "UObject/SoftObjectPtr.h"
#include "CustomTransformation.h"
#include "ItemUIData.generated.h"

class UTexture2D;
class UUserWidget;

USTRUCT(BlueprintType)
struct FItemUIData
{
	GENERATED_BODY()

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText DisplayName;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText Description;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText InGameDescription;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<TSoftObjectPtr<UTexture2D>> IconAssetList;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSoftObjectPtr<UTexture2D> SecondaryIconAsset;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSoftClassPtr<UUserWidget> AnimatedWidgetRef;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FCustomTransformation CustomTransformation;

	UPROPERTY(EditAnywhere)
	uint32 PlatformsUnlicensedNameOverride;

	UPROPERTY(EditAnywhere)
	uint32 PlatformsUnlicensedDescriptionOverride;

	UPROPERTY(EditAnywhere)
	uint32 PlatformsForIconUnlicensedFilePathListOverride;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<TSoftObjectPtr<UTexture2D>> IconUnlicensedAssetListOverride;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool LicenseExpirationOverride;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText DisplayNameUnlicensedOverride;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FText DescriptionUnlicensedOverride;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	int32 AssociatedCharacterIndex;

	UPROPERTY()
	TArray<FString> IconFilePathList_DEPRECATED;

	UPROPERTY()
	FString SecondaryIcon_DEPRECATED;

	UPROPERTY()
	TArray<FString> IconUnlicensedFilePathListOverride_DEPRECATED;

public:
	DEADBYDAYLIGHT_API FItemUIData();
};

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