#pragma once

#include "CoreMinimal.h"
#include "EOriginWidgetState.h"
#include "EPlayerRole.h"
#include "EItemRarity.h"
#include "PriceTagViewData.h"
#include "EDisabledItemOption.h"
#include "EItemSourceTag.h"
#include "CustomizationTooltipViewData.generated.h"

class UCustomizationRewardOutfitPartsViewData;

USTRUCT(BlueprintType)
struct FCustomizationTooltipViewData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText DisplayName;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText ParentName;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText RarityPartInfo;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText CollectionDisplayName;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText CharacterDisplayName;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText Description;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText RoleCategoryInfo;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	EOriginWidgetState CustomizationOriginState;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText CustomizationOriginInfo;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsLocked;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsUnbreakable;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsEquipped;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsBuyable;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsAvailable;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsOwned;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool ShowAvailability;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsOutfitPart;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText OutfitInfoText;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	EPlayerRole AssociatedRole;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	EItemRarity Rarity;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	TArray<FPriceTagViewData> Prices;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool IsEnabled;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	EDisabledItemOption DisabledItemOption;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FText CustomizationDisabledMessage;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	FString EventBannerLabel;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	bool HasOutfitParts;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	UCustomizationRewardOutfitPartsViewData* OutfitParts;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	EItemSourceTag ItemSourceTags;

	UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Transient)
	TArray<FText> SpecialContent;

public:
	DBDUIVIEWINTERFACES_API FCustomizationTooltipViewData();
};

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