#pragma once

#include "CoreMinimal.h"
#include "WwiseSoundBankCookedData.h"
#include "WwiseMediaCookedData.h"
#include "WwiseExternalSourceCookedData.h"
#include "WwiseSwitchContainerLeafCookedData.h"
#include "WwiseGroupValueCookedData.h"
#include "EWwiseEventDestroyOptions.h"
#include "WwiseEventCookedData.generated.h"

USTRUCT(BlueprintType)
struct FWwiseEventCookedData
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	int32 EventId;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FWwiseSoundBankCookedData> SoundBanks;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FWwiseMediaCookedData> Media;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FWwiseExternalSourceCookedData> ExternalSources;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TArray<FWwiseSwitchContainerLeafCookedData> SwitchContainerLeaves;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSet<FWwiseGroupValueCookedData> RequiredGroupValueSet;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	EWwiseEventDestroyOptions DestroyOptions;

	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	FName DebugName;

public:
	WWISERESOURCELOADER_API FWwiseEventCookedData();
};

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