import { defineStore } from 'pinia';
import { ref } from 'vue';

export const useAgentStore = defineStore('agent', () => {
  const agents = ref([]); // Lista de agentes criados

  // Adiciona um novo agente
  const addAgent = (agent) => {
    const newAgent = {
      ...agent,
      id: Date.now().toString(), // ID único
      chatHistory: [], // Histórico de conversas
      createdAt: new Date().toISOString(), // Data de criação
    };
    agents.value.push(newAgent);
    return newAgent;
  };

  // Atualiza um agente existente
  const updateAgent = (updatedAgent) => {
    const index = agents.value.findIndex((agent) => agent.id === updatedAgent.id);
    if (index !== -1) {
      agents.value[index] = { ...agents.value[index], ...updatedAgent };
    } else {
      throw new Error(`Agente com ID ${updatedAgent.id} não encontrado.`);
    }
  };

  // Busca um agente pelo ID
  const getAgentById = (id) => {
    return agents.value.find((agent) => agent.id === id);
  };

  return {
    agents,
    addAgent,
    updateAgent, // Certifique-se de que está aqui
    getAgentById,
  };
});