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

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/SaveGame.h"
#include "NakedDesire/Global/Constants.h"
#include "GlobalSaveGameData.generated.h"

struct FItemSaveRecord;
class UClothingList;

UCLASS()
class NAKEDDESIRE_API UGlobalSaveGameData : public USaveGame
{
	GENERATED_BODY()

public:
	static UGlobalSaveGameData* LoadOrCreateSaveGame(const FString& SlotName = DefaultSaveSlotName);
	static UGlobalSaveGameData* LoadGame(const FString& SlotName = DefaultSaveSlotName);
	static bool SaveGame(const FString& SlotName = DefaultSaveSlotName);
	
	UPROPERTY(SaveGame)
	bool HaveSeenTutorial = false;

	UPROPERTY(SaveGame)
	float Money = 0;
	
	UPROPERTY(SaveGame)
	TArray<FItemSaveRecord> WardrobeItems;
	
	UPROPERTY(SaveGame)
	TArray<FItemSaveRecord> EquippedItems;
	
	UPROPERTY(SaceGame)
	int32 DaysPassed = 0;
	
	UPROPERTY(SaveGame)
	float HourOfDay = 0.0f;

private:
	static UGlobalSaveGameData* CreateNewSaveGame();
};
