Modelo Lógico

Modelo Lógico (MongoDB) - Projeto OBLIVION

Este documento descreve a estrutura das coleções e documentos para o banco de dados MongoDB do projeto OBLIVION. Ele serve como a "fonte da verdade" para a estrutura de dados que será implementada.


Coleção: usuarios

Armazena os dados de cada usuário cadastrado no sistema.

Campo Tipo Descrição Observações
_id ObjectId Identificador único gerado pelo MongoDB. Chave Primária.
nome String Nome completo do usuário. Obrigatório.
email String Email do usuário para login e contato. Obrigatório, Índice Único.
dataCadastro ISODate Data e hora do cadastro do usuário. Obrigatório.

Coleção: midias

Armazena os metadados de qualquer fonte de mídia enviada (vídeo, áudio ou URL), implementando a generalização através do campo tipo.

Campo Tipo Descrição Observações
_id ObjectId Identificador único da mídia. Chave Primária.
usuarioId ObjectId Referência ao _id do usuário que fez o upload. Chave Estrangeira (Obrigatório).
hash String Hash (ex: SHA-256) do conteúdo do arquivo. Índice Único. Nulo se tipo="URL".
urlNormalizada String URL padronizada para evitar duplicidade de links. Índice Único. Existe apenas se tipo="URL".
tipo String Tipo da mídia: "VIDEO", "AUDIO", ou "URL". Obrigatório.
nomeArquivo String Nome original do arquivo enviado. Não aplicável se tipo="URL".
tamanhoBytes Number Tamanho do arquivo em bytes.  
tipoArquivo String MIME type do arquivo (ex: "video/mp4"). Não aplicável se tipo="URL".
duracaoMs Number Duração do conteúdo em milissegundos.  
dataUpload ISODate Data e hora do envio. Obrigatório.
resolucao String Resolução do vídeo (ex: "1920x1080"). Opcional (existe apenas se tipo="VIDEO").
canais String Canais do áudio (ex: "stereo"). Opcional (existe apenas se tipo="AUDIO").
linkOriginal String A URL original enviada pelo usuário. Opcional (existe apenas se tipo="URL").
plataforma String Plataforma de origem da URL (ex: "YouTube"). Opcional (existe apenas se tipo="URL").

Coleção: transcricoes

Armazena o estado e o resultado de cada processo de transcrição.

Campo Tipo Descrição Observações
_id ObjectId Identificador único da transcrição. Chave Primária.
midiaId ObjectId Referência à _id da mídia que está sendo transcrita. Chave Estrangeira (Obrigatório). Índice.
status String Status do job: "pendente", "processando", "concluido", "erro". Obrigatório. Índice.
textoCompleto String O texto final da transcrição.  
dataCriacao ISODate Data e hora do início do job. Obrigatório.
dataAtualizacao ISODate Data e hora da última atualização de status. Obrigatório.
participantes Array de Objetos Lista dos participantes identificados no texto. Ver schema embutido abaixo.

Schema Embutido: participantes

O campo participantes é um array de objetos, onde cada objeto segue a estrutura:

Campo Tipo Descrição
individuoDetectado String Nome/rótulo do locutor (ex: "Locutor A").
trechosRelacionados Array de Objetos Lista de trechos de fala daquele indivíduo.

Revision #2
Created 2 October 2025 19:44:47 by Caio Thomas Silva Bandeira
Updated 6 October 2025 18:52:39 by Caio Thomas Silva Bandeira