#pragma once

#include "CoreMinimal.h"
#include "ZMMOWorldEntry.generated.h"

/**
 * Entrada de mundo (server) recebida do CharServer via S_WORLD_LIST.
 * Espelha `WorldRecord` em `Server/ZeusCharServer/src/types/world.types.ts`.
 *
 * State usa o wire raw (0=Offline, 1=Online, 2=Maintenance — ver
 * ZMMOWireWorldState em CharServerOpcodes.h).
 */
USTRUCT(BlueprintType)
struct FZMMOWorldEntry
{
	GENERATED_BODY()

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	FString WorldId;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	FString WorldName;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	FString Region;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	FString Host;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	int32 Port = 0;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	int32 Capacity = 0;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	int32 Population = 0;

	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	int32 QueueLen = 0;

	/** 0=Offline, 1=Online, 2=Maintenance (vide ZMMOWireWorldState). */
	UPROPERTY(BlueprintReadOnly, Category = "Zeus|World")
	uint8 State = 0;
};
