import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Badge } from "@/components/ui/badge"; import { ScrollArea } from "@/components/ui/scroll-area"; import { Separator } from "@/components/ui/separator"; import { GitBranch, Clock, User, FileText } from "lucide-react"; interface PromptVersion { version: string; type: "major" | "minor" | "patch"; changeDescription: string; systemPrompt: string; createdAt: string; createdBy: string; } interface PromptHistoryDialogProps { open: boolean; onOpenChange: (open: boolean) => void; prompt: { id: number; title: string; currentVersion: string; } | null; } export function PromptHistoryDialog({ open, onOpenChange, prompt }: PromptHistoryDialogProps) { // Mock data - substituir por dados reais do backend const versions: PromptVersion[] = [ { version: "2.1.0", type: "minor", changeDescription: "Adicionado mais empatia nas respostas e incluídos exemplos práticos", systemPrompt: "Você é Clara, assistente de atendimento ao cliente. Seja empática...", createdAt: "2 dias atrás", createdBy: "João Silva", }, { version: "2.0.0", type: "major", changeDescription: "Reformulação completa do tom de voz e objetivos principais", systemPrompt: "Você é Clara, assistente de atendimento ao cliente...", createdAt: "1 semana atrás", createdBy: "Maria Santos", }, { version: "1.5.0", type: "minor", changeDescription: "Adicionadas instruções sobre política de devolução", systemPrompt: "Você é um assistente virtual de atendimento...", createdAt: "2 semanas atrás", createdBy: "João Silva", }, { version: "1.0.0", type: "major", changeDescription: "Versão inicial do prompt", systemPrompt: "Você é um assistente virtual...", createdAt: "1 mês atrás", createdBy: "João Silva", }, ]; const getVersionTypeColor = (type: string) => { switch (type) { case "major": return "destructive"; case "minor": return "default"; case "patch": return "secondary"; default: return "secondary"; } }; const getVersionTypeLabel = (type: string) => { switch (type) { case "major": return "Major"; case "minor": return "Minor"; case "patch": return "Patch"; default: return type; } }; if (!prompt) return null; return ( Histórico de Versões Histórico completo de versões do prompt "{prompt.title}"
{versions.map((version, index) => (
{index < versions.length - 1 && (
)}
v{version.version} {getVersionTypeLabel(version.type)} {version.version === prompt.currentVersion && ( Atual )}
{version.createdAt}
{version.createdBy}

{version.changeDescription}

Conteúdo do Prompt

{version.systemPrompt}

))}
); }