#pragma once

#include "CoreMinimal.h"
#include "DailyRitualSaveData.h"
#include "UIViewFlagSaveData.h"
#include "FearMarketOfferingInstance.h"
#include "PlayerLoadoutData.h"
#include "UObject/NoExportTypes.h"
#include "BloodWebPersistentData.h"
#include "SavedStoreFilters.h"
#include "PlayerSavedProfileCumulativeData.h"
#include "SavedStatsData.h"
#include "CharacterSavedProfileData.h"
#include "SpecialEventSavedData.h"
#include "SavedSeenPopupData.h"
#include "SavedMatchInfoNotification.h"
#include "ReleaseSavedData.h"
#include "CharacterLoadoutPresetsList.h"
#include "LoadoutPresetsDataForGameType.h"
#include "CharacterCustomizationPresetsList.h"
#include "CustomizationPresetsDataForGameType.h"
#include "PlayerSavedProfileDataLocal.generated.h"

USTRUCT(BlueprintType)
struct FPlayerSavedProfileDataLocal
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 Tokens;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FName> Offerings;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FName, bool> PageVisited;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FName, bool> ChatVisible;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FName, bool> OnboardingCompleted;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 ConsecutiveMatchStreak;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 Wins;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 Losses;

	UPROPERTY(EditAnywhere)
	uint64 CurrentSeasonTicks;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FDailyRitualSaveData DailyRitualSaveData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FUIViewFlagSaveData UIViewFlags;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FFearMarketOfferingInstance FearMarket;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FPlayerLoadoutData LastConnectedLoadout;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 LastConnectedCharacterIndex;

	UPROPERTY(EditAnywhere)
	FDateTime DisconnectPenaltyTime;

	UPROPERTY(EditAnywhere)
	FDateTime LastMatchEndTime;

	UPROPERTY(EditAnywhere)
	FDateTime LastMatchStartTime;

	UPROPERTY(EditAnywhere)
	FDateTime LastKillerMatchEndTime;

	UPROPERTY(EditAnywhere)
	FDateTime LastSurvivorMatchEndTime;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FBloodWebPersistentData BloodStoreKillers;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FBloodWebPersistentData BloodStoreSurvivors;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool CrossplayAllowed;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	bool AutoDeclineFriendInvites;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TMap<FName, FSavedStoreFilters> SavedStoreFilters;

private:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	FPlayerSavedProfileCumulativeData _cumulativeData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<FSavedStatsData> _savedPlayerStats;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasBeenGivenKillerTutorialEndReward;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasBeenGivenSurvivorTutorialEndReward;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasSeenBloodpointsOnboardingCurrencyPopup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasSeenAuricCellsOnboardingCurrencyPopup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasSeenIridescentShardsOnboardingCurrencyPopup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasSeenLightSensitivity;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasSeenGammaSetup;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasSeenMainMenu;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	int32 _resetInvalidInputBindingsVersion;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<int32, FCharacterSavedProfileData> _characterData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<FName, FSpecialEventSavedData> _specialEvent;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSet<FName> _seenCinematics;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TSet<FName> _seenSecretRewardPopups;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<FName, FSavedSeenPopupData> _seenPopupsData;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<FName, FSavedMatchInfoNotification> _matchInfoNotifications;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<FString, FReleaseSavedData> _releases;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	bool _hasBeginnerTooltipsBeenDisabledAtLevel;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<FCharacterLoadoutPresetsList> _characterLoadoutPresets;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<FString, FLoadoutPresetsDataForGameType> _characterLoadoutPresetsPerGameType;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TArray<FCharacterCustomizationPresetsList> _characterCustomizationPresets;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, meta=(AllowPrivateAccess=true))
	TMap<FString, FCustomizationPresetsDataForGameType> _characterCustomizationPresetsPerGameType;

public:
	DEADBYDAYLIGHT_API FPlayerSavedProfileDataLocal();
};

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