extends Node

# Este array almacenará los datos de todas las empresas después de cargarlos.
var company_data = []

# La función _ready() se llama automáticamente cuando el nodo entra en el árbol de la escena.
# Como este script es un Autoload, se ejecutará al iniciar la aplicación.
func _ready():
	print("Cargando perfiles de empresas...")
	load_all_company_profiles()
	print("Carga completada. Se encontraron %d perfiles." % company_data.size())

# Función para leer todos los archivos JSON de la carpeta "companies" (versión para Godot 3).
func load_all_company_profiles():
	var path = "res://companies"
	var dir = Directory.new()
	
	if dir.open(path) == OK:
		dir.list_dir_begin()
		var file_name = dir.get_next()
		while file_name != "":
			# Asegurarse de que solo procesamos archivos .json y no directorios.
			if not dir.current_is_dir() and file_name.ends_with(".json"):
				var file_path = path.plus_file(file_name)
				var file = File.new()
				
				if file.open(file_path, File.READ) == OK:
					var content = file.get_as_text()
					file.close()
					
					var parse_result = JSON.parse(content)
					
					if parse_result.error == OK:
						var data = parse_result.result
						# Opcional: Añadir el nombre del archivo al diccionario de datos para fácil referencia.
						data["source_file"] = file_name
						company_data.append(data)
					else:
						print("Error al parsear el JSON '%s': %s (en la línea %d)" % [file_name, parse_result.error_string, parse_result.error_line])
				else:
					print("No se pudo abrir el archivo: %s" % file_path)
					
			file_name = dir.get_next()
	else:
		print("Error: No se pudo abrir el directorio: %s" % path)

# --- Funciones de ejemplo para acceder a los datos ---

# Devuelve los datos de una empresa por su nombre.
func get_company_by_name(name):
	for company in company_data:
		if company.get("company_name") == name:
			return company
	return null

# Devuelve una lista de todos los nombres de las empresas.
func get_all_company_names():
	var names = []
	for company in company_data:
		if company.has("company_name"):
			names.append(company.get("company_name"))
	names.sort()
	return names
