Modelo de dados
As entidades do banco e como se relacionam.
Atualizado em 11 de junho de 2026
O esquema vive em prisma/schema.prisma. São cinco entidades principais.
Card
A carta, espelhando o dump oracle_cards da Scryfall. O id é o identificador da própria Scryfall. Guarda nome, custo, CMV, linha de tipo, texto de regras, cores, identidade de cor, palavras chave, poder, resistência, lealdade, raridade, coleção, imagens, legalidades (em JSON), o ranking do EDHREC e as tags de efeito. Tem índices em nome, CMV, raridade, coleção, ranking e tags para acelerar a busca.
User
A conta do jogador: nome, e-mail único e o hash da senha (bcrypt). Relaciona com seus decks e com sua coleção.
Post
O conteúdo editorial usado nas páginas de Atualizações e Blog. Tem um kind (ATUALIZACAO ou BLOG), slug único, título, resumo, conteúdo em markdown, capa e data de publicação.
Deck e DeckCard
O Deck pertence a um usuário e tem nome, formato (um enum com Commander, Standard e os demais), descrição e capa.
A DeckCard liga um deck a uma carta. Guarda a quantidade, o board (MAIN, SIDE ou CONSIDERING), se é comandante e uma imagem alternativa opcional. A combinação de deck, carta e board é única, então a mesma carta pode existir no principal e no sideboard como linhas separadas.
CollectionEntry
A entrada de coleção liga um usuário a uma carta com quantidade, foil, condição (enum de NM a DMG) e, opcionalmente, os dados de uma edição específica escolhida via Scryfall. Quando a edição é nula, vale a impressão canônica do banco.
Relações e exclusão
Decks, cartas de deck e entradas de coleção usam exclusão em cascata: apagar um usuário apaga seus decks e sua coleção; apagar um deck apaga suas cartas. Isso mantém o banco sem registros órfãos.