No último texto, finalizamos com uma ideia solta de como poderia ser os nossos JSONs de entrada e saida.
Fui além e pedi para uma LLM modelar aqueles requisitos em formato JSON, para que as coisas ficassem ainda mais claras. Vamos ver se isso nos ajuda?
{
"nomeCampeonato": "String",
"equipes": [
{
"id": "Integer",
"nome": "String",
"localizacao": "String",
"grupo": "String",
"subGrupo": "String"
},
...
],
"formatoCampeonato": {
"divisaoPorGrupos": "Integer",
"grupos": [
{
"id": "Integer",
"nome": "String",
"equipes": ["Integer"],
},
],
"turnosDentroGrupo": "Integer",
"turnosEntreGrupos": "Integer",
"sorteioGrupos": "Boolean"
},
"calendarioConfig": {
"tabelaOtimizada": "Boolean",
"totalJogosPorDia": "Integer",
"diasDescanso": "Integer"
}
}
Vamos entender o que a LLM nos trouxe:
- Uma lista chamada
equipes
, contendo objetos com o nome do time e a sua localização; - Um objeto chamado
formatoCampeonato
, que que define em quantos grupos os times vão se dividir e nos traz, embutidos, um objeto grupo; - Uma lista chamada
grupos
, que contém os grupos onde estão organizadas as equipes. Pense que no Brasileirão, por exemplo, teríamos apenas um objeto desses, com os 20 times. Já na Libertadores, teríamos 8 objetos "grupo", com 4 times cada. - Dentro de
formatoCampeonato
também definimos se, e quantos turnos haverá entre times dentro do mesmo grupo e entre times de grupos diferentes. Lembre que no Paulistão (até 2024), por exemplo, são 4 grupos onde os times jogam um turno contra os times dos outros grupos e não jogam contra os times do próprio grupo. -
formatoCampeonato
também define se somos nós quem teremos que fazer o sorteio dos grupos ou se o usuário já vai mandar tudo pronto. É por isso que temos os campos degrupo
esubgrupo
lá no objetoequipes
. - E, pra finalizar, o objeto
calendarioConfig
, que define questões de calendário, como quantidade de jogos por dia, quantidade de dias de descanso que um time deve ter entre um jogo e outro e o nosso "tempero secreto": a otimização de viagens!
Bem, se você já estudou um pouco de orientação a objetos, sabe que esse objetos JSON que modelamos aqui são grandes candidatos a se tornarem as classes do nosso código, certo?
No próximo texto, vamos analisar se cada objeto JSON desses é elegível para gerar uma classe no nosso backend e também vamos falar um pouco da arquitetura do nosso Tabelão.
Prosseguimos.
Top comments (0)