extends RefCounted


#func on_ready(main, bot: DiscordBot) -> void:
	#pass
#
func on_autocomplete(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void:
	#print(options)
	#interaction.respond_autocomplete(Library.printer_choies())
	
	# The part of string which the user is typing
	var part = options[0].value
	AutocompleteTools.spool_autocomplete(part, interaction)
	pass

func execute(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void:
	if not Tools.check_perms(interaction):  #limit access to technicians only
		return
	
	print(options)
	var spool_name : String = options[0].value
	var new_name : String = options[1].value
	var new_link : String
	if options.size() > 2:
		new_link = options[2].value
	
	var spool_exists : bool = false
	
	
	for spool : Spool in Library.save.spools:
		if spool.name == spool_name:
			spool_exists = true
			if new_name != "0":
				spool.name = new_name
			if new_link:
				spool.link = new_link
			#Library.save.printers.erase(printer)
	
	Library.save_data()
	
	if not spool_exists:
		interaction.reply({
			"content" : "unable to find " + spool_name
		})
		return
	
	var response : String = "finished editing `" + new_name + "`\n"
	var embed = Embed.new().set_description(Library.list_spools(new_name)) 
	
	
	interaction.reply({
		"content": response,
		"embeds":[embed],
	})
	pass


var data = ApplicationCommand.new()\
	.set_name("spool-edit")\
	.set_description("edit a spool (IN THE LIBRARY)")\
	.add_option(ApplicationCommand.string_option("spool_name", "the spools name (MUST BE UNLOADED)",
	{
		"required":true,
		"autocomplete":true,
		#"choices" : Library.printer_choies()
	}))\
	.add_option(ApplicationCommand.string_option("new_name","new name for the spool (type '0' to keep as is)", 
	{
		"required" : true,
	}))\
	.add_option(ApplicationCommand.string_option("new_link","new link for the spool", 
	{
		"required" : false,
	}))\
	

## lesson learnt: option name must not have spaces
