Criar DbHandler
O DBHandler é a interface entre o sistema e o banco de dados. Qualquer interação com o banco de dados deve ser feita através do DBHandler. No momento o DbHandler também deve fazer o papel de simular o banco de dados, utilizando vetores para simular as tabelas de elementos. Nesse momento é irrelevante a questão de relacionamentos, na inserção de uma aventura por exemplo, pode-se criar uma cópia do elemento. O importante é a estrutura do DBHandler.
O DBHandler é formado por queryBuilders. Cada entidade inserida contém um QueryBuilder. Um query builder contém as funções para manipular um elemento no banco de dados.
Exemplo para inserir um aventureiro no banco deve-se utilizar a função dbHandler.adventurer.add(aventureiro); Onde DbHandler é um objeto do tipo DbHandler, adventurer é um atributo de dbHandler do tipo AdventurerQueryBuilder e add é o método do query builder que recebe um objeto Adventurer e insere no banco de dados.
Resumo:
-
Criar classe QB(QueryBuilder) para cada objeto do sistema (aventureiro, aventura, encontro, npc, monstro, desafio)
- Os query builder devem ter os métodos add(objeto), read(id) e list()
- Note que é difícil utilizar uma classe abstrata pois o método add para cada QB recebe um objeto de tipo diferente
- src/utils/qb.ts
- No momento os QBs podem ser utilizados como banco simulado (o AdventurerQB contém um vetor de Adventurers e insere nele)
- Criar Classe DbHandler que contém os QueryBuilders de todos os objetos