PGŽ Sport Platform — Round 1+2 baseline (sport2.html + API)
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# PGŽ SPORT — UPDATE — 29.04.2026 ~12:00 — Auto-kategorizacija po dobi
|
||||
|
||||
## Što je dodano u nastavku
|
||||
|
||||
### 1. Tablica `pgz_sport.dobne_kategorije`
|
||||
- 127 kategorija definirano za **17 sportova**
|
||||
- Polja: sport, naziv, oznaka, min_godina, max_godina, organizacija (HNS/HRS/HKS/HBS/HOO itd.), redoslijed, promocija_dozvoljena
|
||||
- Pravila iz HR sportskih saveza i međunarodnih (FIBA, FIDE, ITF, World Athletics, FINA, UCI, WT)
|
||||
|
||||
### 2. Sportaš shema proširena
|
||||
- `kategorije TEXT[]` — sve kategorije u koje pripada
|
||||
- `promocija_kategorije TEXT[]` — kategorije u koje se može promovirati u stariju ekipu
|
||||
- `spol`, `sport`, `auto_kategorija_calc_at`
|
||||
|
||||
### 3. Backend endpointi
|
||||
- `GET /api/v2/dobne-kategorije/list?sport=X` — sve kategorije
|
||||
- `GET /api/v2/dobne-kategorije/by-sport` — group by sport
|
||||
- `POST /api/v2/dobne-kategorije/auto-assign` — body: {datum_rodenja, sport} → primary/additional/promocije/neeligible
|
||||
- `POST /api/v2/sportas/{id}/recalc-categories` — recalc za pojedinog sportaša
|
||||
- `POST /api/v2/sportas/recalc-all-categories` — bulk za sve
|
||||
|
||||
### 4. Frontend GUI
|
||||
- `spAddNew` modal sad ima:
|
||||
- Sport dropdown (17 sportova)
|
||||
- Spol dropdown
|
||||
- Datum rođenja
|
||||
- **Live preview kategorija** — kad korisnik upiše datum + sport, AJAX poziv vraća primarnu + dodatne + promocije
|
||||
- **Checkbox za promocije** — administrator odlučuje da li mladi sportaš ide i u stariju selekciju
|
||||
- Nova **Dobne kategorije** stranica u sidebar-u — pregled svih kategorija po sportu
|
||||
- pageSportas profil prikazuje kategorije i promocije kao badges
|
||||
|
||||
### 5. Bulk recalc rezultati
|
||||
- 721 sportaša dobio automatsku kategoriju
|
||||
- 77 sportaša ima promocije (mladi → stariji)
|
||||
|
||||
## STATE NAKON RUN-A
|
||||
|
||||
| Metrika | Vrijednost |
|
||||
|---------|-----------|
|
||||
| Dobne kategorije definirane | **127** za **17 sportova** |
|
||||
| Sportaša s kategorijom | **721** (od 1129) |
|
||||
| Sportaša s promocijom | **77** |
|
||||
| Funkcionara | 155 |
|
||||
| Saveza | 220 |
|
||||
| Klubova PGŽ | 1086 |
|
||||
| Qdrant | ~58.500 točaka |
|
||||
|
||||
## Raspodjela top kategorija
|
||||
- Boćanje 50+ Veterani: **371**
|
||||
- Boćanje OPEN Seniori: **227**
|
||||
- Boćanje U18 Kadeti: 29
|
||||
- Boćanje U13 Pioniri: 23
|
||||
- Rukomet OPEN: 21
|
||||
- Nogomet OPEN: 12
|
||||
- Košarka OPEN: 7
|
||||
|
||||
## Primjer auto-kategorizacije
|
||||
**Marko Komadina, rod. 2012-05-15, sport: nogomet**
|
||||
- Starost u sezoni 2026: 14 godina
|
||||
- Primary: **U15 Mlađi kadeti** (HNS)
|
||||
- Promocije dostupne:
|
||||
- U17 Kadeti
|
||||
- U19 Juniori (mogu igrati i seniorsku)
|
||||
|
||||
## Sportovi pokriveni
|
||||
nogomet, rukomet, košarka, odbojka, vaterpolo, plivanje, boćanje, atletika, tenis, stolni tenis, veslanje, jedriličarstvo, biciklizam, karate, judo, taekwondo, šah
|
||||
|
||||
## URL-ovi
|
||||
- /sport/ → sidebar **"Dobne kategorije"** (NEW) — pregled svih kategorija
|
||||
- /sport/ → "Igrači · Foto" → "+ Novi sportaš" — modal s live preview kategorija
|
||||
- /api/v2/dobne-kategorije/auto-assign — POST {datum_rodenja, sport}
|
||||
- /api/v2/dobne-kategorije/list?sport=X
|
||||
- /api/v2/sportas/{id}/profile — sad vraća kategorije + promocije
|
||||
|
||||
## TODO
|
||||
1. Lokalni PGŽ savezi mogu imati specifične kategorije (npr. PGŽ Liga U13) — dodati po potrebi
|
||||
2. Spol-specifične kategorije (M vs F) za sportove gdje su odvojene
|
||||
3. Frontend filter sportaša po kategoriji
|
||||
4. Cron job — recalc-all-categories prvi dan svakog mjeseca (kategorije se mijenjaju s godinama)
|
||||
5. Veliko sutra: lokalni klubovi mogu imati svoju "ekipa" strukturu (1. ekipa, 2. ekipa, juniorska)
|
||||
Reference in New Issue
Block a user