// © 2025 Naked People Team. All Rights Reserved.

#pragma once

#include "CoreMinimal.h"
#include "CommonUserWidget.h"
#include "NakedDesire/Clothing/ClothingSlotType.h"
#include "EquipmentSlotMenuWidget.generated.h"

class ANakedDesireCharacter;
class UButton;

UCLASS(Abstract)
class NAKEDDESIRE_API UEquipmentSlotMenuWidget : public UCommonUserWidget
{
	GENERATED_BODY()

public:
	// bInAtWardrobe makes Remove store the garment in the wardrobe instead of dropping it (§6.5).
	void Init(EClothingSlotType InSlotType, bool bInAtWardrobe = false);

	EClothingSlotType GetSlotType() const { return SlotType; }

	DECLARE_MULTICAST_DELEGATE(FOnActionPerformed);
	FOnActionPerformed OnActionPerformed;

protected:
	virtual void NativeConstruct() override;

private:
	UPROPERTY(meta = (BindWidget))
	TObjectPtr<UButton> RemoveClothingBtn;

	UPROPERTY()
	TObjectPtr<ANakedDesireCharacter> Player;

	UPROPERTY()
	EClothingSlotType SlotType;

	bool bAtWardrobe = false;

	UFUNCTION()
	void OnRemoveClothingClicked();
};