#pragma once

#include "CoreMinimal.h"
#include "CoreButtonWidget.h"
#include "ECollectionItemScaleType.h"
#include "CoreStoreCollectionsItemWidget.generated.h"

class UDBDTextBlock;
class UCoreTimerFlagWidget;
class UStoreCollectionViewData;

UCLASS(Blueprintable, EditInlineNew)
class UCoreStoreCollectionsItemWidget : public UCoreButtonWidget
{
	GENERATED_BODY()

protected:
	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDTextBlock* CountTB;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreTimerFlagWidget* SaleTimerFlag;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreTimerFlagWidget* LimitedTimerFlag;

private:
	UPROPERTY(BlueprintReadWrite, Transient, meta=(AllowPrivateAccess=true))
	UStoreCollectionViewData* _collectionViewData;

public:
	UFUNCTION(BlueprintCallable, BlueprintImplementableEvent)
	void SetupVisuals(UStoreCollectionViewData* collectionViewData, const ECollectionItemScaleType collectionItemScale);

	UFUNCTION(BlueprintCallable)
	void SetData(UStoreCollectionViewData* collectionViewData, const ECollectionItemScaleType collectionItemScale);

	UFUNCTION(BlueprintCallable)
	UStoreCollectionViewData* GetStoreCollectionViewData();

public:
	UCoreStoreCollectionsItemWidget();
};

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