#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "StoreArchivePassViewData.h"
#include "StoreRiftTierViewData.h"
#include "ERewardType.h"
#include "EPlayerRole.h"
#include "UObject/SoftObjectPtr.h"
#include "StorePackContentData.generated.h"

class UStoreCharacterItemViewData;
class UStoreCustomizationItemViewData;
class UTexture2D;

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

public:
	UPROPERTY(BlueprintReadWrite, Transient)
	UStoreCharacterItemViewData* CharacterViewData;

	UPROPERTY(BlueprintReadWrite, Transient)
	UStoreCustomizationItemViewData* CustomizationViewData;

	UPROPERTY(BlueprintReadWrite, Transient)
	FStoreArchivePassViewData ArchivePassViewData;

	UPROPERTY(BlueprintReadWrite, Transient)
	FStoreRiftTierViewData RiftTierViewData;

	UPROPERTY(BlueprintReadWrite, Transient)
	bool HasPriority;

public:
	UFUNCTION(BlueprintPure)
	ERewardType GetRewardType() const;

	UFUNCTION(BlueprintPure)
	EPlayerRole GetPlayerRole() const;

	UFUNCTION(BlueprintPure)
	FName GetId() const;

	UFUNCTION(BlueprintCallable)
	TSoftObjectPtr<UTexture2D> GetIconTexturePtr();

public:
	UStorePackContentData();
};

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