feat: definido projeto com uma sequência e múltiplos arquivos de m

- definido projeto com uma sequência e múltiplos arquivos de mídia
- criada persistência de projeto com uma sequência e seleções de faixas e clipes
- criada guia Projeto para selecionar sequência, faixas e clipes do Premiere
- adicionada gravação das seleções da guia Projeto no SQLite

Resumo:
- 10 arquivos alterados
- 4 novos
- 6 modificados
- 0 removidos

 6 files changed, 71 insertions(+), 2 deletions(-)

Arquivos:
  - .jhonny/analises.db
  - CONTEXT.md
  - code/cep-plugin/index.html
  - code/cep-plugin/main.js
  - code/engine/persistencia/__init__.py
  - code/engine/persistencia/esquema.py
  - code/cep-plugin/abas/
  - code/engine/persistencia/repositorio_de_projetos.py
  - code/engine/registrar_projeto_de_edicao.py
  - code/engine/testes/test_repositorio_de_projetos.py
This commit is contained in:
João Henrique
2026-09-10 13:22:15 -04:00
parent a9e5b5ff58
commit a4286bbd8a
10 changed files with 329 additions and 2 deletions
+34 -1
View File
@@ -28,7 +28,10 @@
</header>
<nav class="tab-bar" role="tablist" aria-label="Painel">
<button class="tab-button active" id="tabBtnScanner" role="tab" aria-selected="true" aria-controls="tabScanner" onclick="switchTab('scanner')" type="button">
<button class="tab-button active" id="tabBtnProjeto" role="tab" aria-selected="true" aria-controls="tabProjeto" onclick="switchTab('projeto')" type="button">
<span class="tab-icon" aria-hidden="true">▣</span>Projeto
</button>
<button class="tab-button" id="tabBtnScanner" role="tab" aria-selected="false" aria-controls="tabScanner" onclick="switchTab('scanner')" type="button">
<span class="tab-icon" aria-hidden="true">◉</span>Scanner
</button>
<button class="tab-button" id="tabBtnRefinar" role="tab" aria-selected="false" aria-controls="tabRefinar" onclick="switchTab('refinar')" type="button">
@@ -88,6 +91,35 @@
<button type="button" class="toast-close" onclick="hideToast()" aria-label="Fechar aviso">✕</button>
</div>
<!-- ================================ PROJETO ================================ -->
<div class="tab-panel" id="tabProjeto" role="tabpanel" aria-labelledby="tabBtnProjeto">
<p class="tab-intro">Um projeto contém uma única sequência e pode usar várias faixas, clipes e arquivos de mídia.</p>
<section class="card">
<div class="card-head"><h2>Sequência do projeto</h2><span class="card-kicker" id="projetoStatus">Aguardando seleção</span></div>
<button class="button button-primary" id="btnProjetoCarregar" onclick="projetoListarSequencias()" type="button">Carregar sequências do Premiere</button>
<label class="field-label" for="projetoSequenciaSelect">Sequência / timeline</label>
<select id="projetoSequenciaSelect" class="select-field" onchange="projetoSelecionarSequencia()" disabled>
<option value="">Nenhuma sequência carregada</option>
</select>
<p class="field-help" id="projetoInfo">Escolha a sequência que será a raiz deste projeto.</p>
</section>
<section class="card" id="projetoTimelineCard" hidden>
<div class="card-head"><h2>Informações da timeline</h2><span class="card-kicker" id="projetoTimelineStatus">—</span></div>
<dl class="kv">
<div><dt>Duração</dt><dd id="projetoDuracao">—</dd></div>
<div><dt>Resolução</dt><dd id="projetoResolucao">—</dd></div>
<div><dt>Faixas</dt><dd id="projetoTotalFaixas">—</dd></div>
<div><dt>Clipes</dt><dd id="projetoTotalClipes">—</dd></div>
</dl>
<h3>Faixas e clipes utilizados</h3>
<div id="projetoFaixas" class="scanner-track-list"></div>
<div class="button-row">
<button class="button button-primary" id="btnProjetoSalvar" onclick="projetoSalvar()" type="button" disabled>Salvar projeto no banco</button>
<button class="button button-primary" id="btnProjetoContinuar" onclick="projetoContinuarEdicao()" type="button" disabled>Continuar para editar vídeo</button>
</div>
</section>
</div>
<!-- ============================= EDITAR VÍDEO ============================= -->
<div class="tab-panel" id="tabSilence" role="tabpanel" aria-labelledby="tabBtnSilence" hidden>
@@ -675,6 +707,7 @@
<script charset="utf-8" src="CSInterface.js"></script>
<script charset="utf-8" src="updater.cjs"></script>
<script charset="utf-8" src="abas/projeto/projeto.js"></script>
<script charset="utf-8" src="main.js"></script>
</body>
</html>