#pragma once

#include "CoreMinimal.h"
#include "CoreBaseUserWidget.h"
#include "FriendItemWidget.generated.h"

class UDBDRichTextBlock;
class UDBDTextBlock;
class UDBDImage;
class UCoreKeyListenerButtonWidget;
class UCoreButtonWidget;
class UFriendItemWidget;

UCLASS(Blueprintable, EditInlineNew)
class UFriendItemWidget : public UCoreBaseUserWidget
{
	GENERATED_BODY()

public:
	DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnActionTriggeredDelegate, UFriendItemWidget*, friendItem);

public:
	UPROPERTY(BlueprintReadWrite, BlueprintAssignable)
	FOnActionTriggeredDelegate OnActionTriggeredDelegate;

protected:
	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDRichTextBlock* PlayerNameRTB;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDTextBlock* PlayerIdTB;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDTextBlock* StatusTB;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDImage* CrossplayIcon;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UDBDImage* InviteIcon;

	UPROPERTY(BlueprintReadWrite, meta=(BindWidgetOptional))
	UCoreKeyListenerButtonWidget* ActionButton;

protected:
	UFUNCTION(BlueprintCallable)
	void OnActionTriggered(UCoreButtonWidget* buttonWidget);

public:
	UFriendItemWidget();
};

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