"""Backup automático da sequência antes de aplicar um plano de edição.""" from __future__ import annotations from ..integracoes.premiere.cliente_mcp import ClienteMCP from ..integracoes.premiere.erros_mcp import ErroDeFerramentaMCP class BackupDaSequencia: """Duplica a sequência ativa do Premiere antes de uma edição destrutiva. Espelha o passo de segurança do painel CEP (``app.project.activeSequence.clone()`` em ``applyEditorialActions()``, ``cep-plugin/main.js``): sem undo por script nesta versão do Premiere, duplicar a sequência antes de cortar é a única forma de recuperar o estado anterior se algo sair errado. """ def __init__(self, cliente_mcp: ClienteMCP) -> None: self.cliente_mcp = cliente_mcp def criar_backup(self, identificador_da_sequencia: str) -> bool: """Duplica a sequência. Devolve ``True`` se conseguiu, ``False`` se o Premiere recusou. Não levanta exceção numa recusa: o painel CEP também segue aplicando o plano mesmo se o backup falhar (loga e avisa, não bloqueia) — a falta de backup não deve impedir a edição que o usuário pediu, só precisa ficar visível para quem chama decidir o que fazer. """ try: self.cliente_mcp.chamar("duplicate_sequence", {"sequence_id": identificador_da_sequencia}) return True except ErroDeFerramentaMCP: return False