#pragma once
#include "CoreMinimal.h"
#include "PortaSettings.generated.h"

UCLASS(config = Porta, BlueprintType)
class PORTAINTERFACE_API UPortaSettings : public UObject
{
	GENERATED_BODY()

public:
	UPortaSettings();

	bool ShouldStartPixelStream() const { return PixelStreamEnabled && (!GIsEditor || PixelStreamFromEditor); }

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Connection Settings")
	FString ConnectionURL;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Connection Settings")
	FString PortaChannel;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Media")
	FString AssetCacheFolder;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Media")
	FString PortaApiUrl;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Media")
	FString PortaApiKey;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Pixel Streaming", meta = (ConfigRestartRequired = true))
	bool PixelStreamEnabled;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Pixel Streaming", meta = (ConfigRestartRequired = true))
	bool PixelStreamFromEditor;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Pixel Streaming", meta = (ConfigRestartRequired = true))
	FString PixelStreamHost;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Pixel Streaming", meta = (ConfigRestartRequired = true))
	int PixelStreamPort;

	UPROPERTY(Config, BlueprintReadOnly, EditAnywhere, Category = "Pixel Streaming", meta = (ConfigRestartRequired = true))
	int PixelStreamServerHttpPort;
};
