import { useState } from "react"; import { useParams, useNavigate } from "react-router-dom"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Textarea } from "@/components/ui/textarea"; import { Badge } from "@/components/ui/badge"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { ScrollArea } from "@/components/ui/scroll-area"; import { ArrowLeft, Bot, Save, Clock, Copy } from "lucide-react"; import { useToast } from "@/hooks/use-toast"; export default function AgentDetails() { const { id } = useParams(); const navigate = useNavigate(); const { toast } = useToast(); // Mock data - substituir por dados reais do backend const [agent, setAgent] = useState({ id: id, name: "Agente de Atendimento", status: "active" as const, model: "google/gemini-2.5-flash", systemPrompt: "Você é um assistente de atendimento ao cliente. Seja educado, prestativo e objetivo nas suas respostas. Sempre mantenha um tom profissional e cordial.", }); const [versions] = useState([ { id: 1, version: "2.1", type: "major" as const, description: "Melhorias na clareza das respostas", prompt: "Você é um assistente de atendimento ao cliente. Seja educado, prestativo e objetivo nas suas respostas. Sempre mantenha um tom profissional e cordial.", createdAt: "2024-01-15 14:30", author: "João Silva", }, { id: 2, version: "2.0", type: "major" as const, description: "Reformulação completa do prompt", prompt: "Você é um assistente de atendimento. Seja cordial e ajude o cliente.", createdAt: "2024-01-10 09:15", author: "Maria Santos", }, { id: 3, version: "1.5", type: "minor" as const, description: "Ajustes de tom", prompt: "Você é um assistente. Seja educado.", createdAt: "2024-01-05 16:45", author: "João Silva", }, ]); const aiModels = [ { value: "google/gemini-2.5-pro", label: "Google Gemini 2.5 Pro" }, { value: "google/gemini-2.5-flash", label: "Google Gemini 2.5 Flash" }, { value: "google/gemini-2.5-flash-lite", label: "Google Gemini 2.5 Flash Lite" }, { value: "openai/gpt-5", label: "OpenAI GPT-5" }, { value: "openai/gpt-5-mini", label: "OpenAI GPT-5 Mini" }, { value: "openai/gpt-5-nano", label: "OpenAI GPT-5 Nano" }, ]; const handleSave = () => { // TODO: Implementar salvamento no backend console.log("Saving agent:", agent); toast({ title: "Agente atualizado", description: "As alterações foram salvas com sucesso.", }); }; const handleCopyPrompt = async (prompt: string) => { try { await navigator.clipboard.writeText(prompt); toast({ title: "Copiado!", description: "Prompt copiado para a área de transferência.", }); } catch (error) { toast({ title: "Erro", description: "Não foi possível copiar o prompt.", variant: "destructive", }); } }; const getVersionTypeColor = (type: string) => { switch (type) { case "major": return "bg-primary text-primary-foreground"; case "minor": return "bg-secondary text-secondary-foreground"; case "patch": return "bg-muted text-muted-foreground"; default: return "bg-muted text-muted-foreground"; } }; return (
{version.description}
{version.prompt}
{version.author} • {version.createdAt}