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

#pragma once

#include "CoreMinimal.h"
#include "Engine/DataAsset.h"
#include "AudioSettingsConfig.generated.h"

class USoundMix;
class USoundClass;

// Data-driven audio routing for the settings sliders (§17.4). The UAudioSettingsSubsystem
// pushes per-class volume overrides through SettingsMix when the user changes a slider.
// Author one SoundMix + three SoundClasses and assign on UNakedDesireGameInstance::AudioConfig.
UCLASS()
class NAKEDDESIRE_API UAudioSettingsConfig : public UPrimaryDataAsset
{
	GENERATED_BODY()

public:
	UPROPERTY(EditDefaultsOnly, Category = "Audio")
	TObjectPtr<USoundMix> SettingsMix;

	UPROPERTY(EditDefaultsOnly, Category = "Audio")
	TObjectPtr<USoundClass> MasterClass;

	UPROPERTY(EditDefaultsOnly, Category = "Audio")
	TObjectPtr<USoundClass> MusicClass;

	UPROPERTY(EditDefaultsOnly, Category = "Audio")
	TObjectPtr<USoundClass> SfxClass;
};