melhores marcadores adicionados

This commit is contained in:
2026-04-24 16:44:50 +01:00
parent ce16ff59b6
commit 8784cc4975
12 changed files with 789 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
# 04 - Schema da Base de Dados (Firebase Realtime Database)
Este projeto utiliza o Firebase Realtime Database. Como se trata de uma base de dados NoSQL estruturada em árvore JSON, a integridade é mantida pela concordância entre o que o **Scraper Java escreve** e aquilo que a **App Android espera ler**.
A raiz da base de dados encontra-se geralmente dividida por categoria de campeonato. Assumindo como base o desenvolvimento, a organização atual reflete a estrutura de Escalões (ex. "Senior", "Junior", etc).
## Estrutura Árvore JSON (Schema Esperado)
```json
{
"Senior": {
"standings": {
"Vila Chã": {
"clubName": "Vila Chã",
"clubLogo": "https://url...",
"points": "45",
"gamesPlayed": "15",
"wins": "15",
"draws": "0",
"losses": "0",
"goalsFor": "50",
"goalsAgainst": "10",
"position": 1
},
"Outro Clube": {
...
}
},
"journeys": {
"Jornada 1": {
"games": [
{
"homeTeam": "Clube A",
"homeLogo": "https://url...",
"awayTeam": "Clube B",
"awayLogo": "https://url...",
"homeScore": "2",
"awayScore": "1",
"date": "10-10-2023",
"field": "Campo do Clube A",
"matchReportUrl": "https://url..."
}
]
}
},
"players": {
"Vila Chã": [
{
"name": "João Silva",
"number": "10",
"position": "Avançado",
"photoUrl": "https://url..."
}
]
}
},
"Users": {
"UID_12345": {
"email": "user@email.com",
"favoriteClub": "Vila Chã"
}
}
}
```
## Regras e Convenções
- **As chaves principais** (`standings`, `journeys`, `players`) devem ser escritas com letra minúscula, facilitando as queries.
- **Formatação Numérica**: Ocasionalmente no processo de Web Scraping, os valores numéricos são guardados e transmitidos como `String`. Na App Android, ao efetuar lógicas matemáticas é importante fazer parse para `Integer`. As classes `models/` ditam o tipo final.
- **Campos Opcionais**: Determinados campos como `matchReportUrl` podem vir vazios (`""`) da AFAVCD. Os adaptadores Android deverão estar preparados para ocultar botões se essa string for nula ou vazia.
## Segurança
As regras da Realtime Database (`rules.json` na consola da Firebase) deverão espelhar a permissão "Leitura de qualquer utilizador, Escrita apenas por Admin". Isto previne que um utilizador malicioso com App Adulterada envie resultados falsos.