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
+26
View File
@@ -285,6 +285,32 @@ CREATE TABLE IF NOT EXISTS aplicacoes_do_plano (
);
CREATE INDEX IF NOT EXISTS idx_aplicacoes_plano ON aplicacoes_do_plano(plano_id);
-- Um projeto representa exatamente uma sequência, mas pode selecionar vários
-- arquivos, faixas e clipes pertencentes a ela.
CREATE TABLE IF NOT EXISTS projetos_de_edicao (
id INTEGER PRIMARY KEY AUTOINCREMENT,
video_id TEXT NOT NULL REFERENCES videos(id) ON DELETE CASCADE,
nome TEXT NOT NULL,
status TEXT NOT NULL DEFAULT 'aberto',
criado_em TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),
atualizado_em TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))
);
CREATE INDEX IF NOT EXISTS idx_projetos_video ON projetos_de_edicao(video_id, atualizado_em);
CREATE TABLE IF NOT EXISTS faixas_do_projeto (
projeto_id INTEGER NOT NULL REFERENCES projetos_de_edicao(id) ON DELETE CASCADE,
faixa_id TEXT NOT NULL,
selecionada INTEGER NOT NULL DEFAULT 1,
PRIMARY KEY (projeto_id, faixa_id)
);
CREATE TABLE IF NOT EXISTS clipes_do_projeto (
projeto_id INTEGER NOT NULL REFERENCES projetos_de_edicao(id) ON DELETE CASCADE,
clipe_id TEXT NOT NULL,
selecionado INTEGER NOT NULL DEFAULT 1,
PRIMARY KEY (projeto_id, clipe_id)
);
-- Configuração editorial escolhida no painel, antes de existir um plano da IA.
-- A análise continua normalizada nas tabelas do Scanner; esta tabela guarda
-- somente a decisão do usuário e suas opções para a edição.