Files
pgz-sport/_handoff/HANDOFF_20260429_1053.md
T

106 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PGŽ SPORT — UPDATE — 29.04.2026 11:00 — Multi-sport coverage
## Što je dodano u nastavku
### 1. Parser v4 + cijela sezona scrape — **HNS COMPLETE**
- klub_all FULL: 16 klubova × svih ~24 utakmica
- 5017 utakmice_log redaka, 244 utakmica, 503 golova, 533 žuta, 12 crvenih kartona
- Top scorers: Antonio Frlan (HNK Goranin) 18 golova, Antonio Džaja (NK Mune) 14, Patrik Vidmar (HNK Lovran) 13
- Real time stats: minute, goals, cards po igraču po utakmici
### 2. Backend: /api/v2/dashboard/sport-stats
- KPI summary, top_scorers, top_appearances, most_carded, klub_breakdown, recent_matches
### 3. Frontend: pageSportStats (⚽ Sport Stats)
- Sidebar nav stavka, KPI grid, top tablice (clickable → profil)
### 4. Backend: /api/v2/sportas/create
- RBAC: klub_admin može dodati u svoj klub, savez_admin u svoj savez
- Punih 13 polja (ime, prezime, klub_id, datum_rodenja, mjesto, broj_dresa, pozicija, dominantna_noga, visina, težina, slika_url, oib, biografija, reprezentativac)
### 5. Backend: /api/v2/utakmice/log
- Klub admin može unijeti utakmicu po sportašu
- pogoci, žuti, crveni, minute, starter, klub_dom, klub_gost, rezultat
### 6. Frontend: spAddNew modal — **ručni unos sportaša**
- Klikom na "+ Novi sportaš" u Sportaši grid stranici
- Klub admin može dodati u svoj klub, pgz_admin u bilo koji
- Auto-redirect na profil novog sportaša
### 7. **HBS BOĆARSKI SCRAPER** ⭐
- /opt/pgz-sport/scrapers/hbs_bocar.py
- Format: "N. E-XXXX, Ime Prezime, GGGG." iz "Popis igrača" sekcije
- 45/81 PGŽ boćarskih klubova mapirano (svi koji su u HBS popisu)
- **674 boćara scrape-ano** s registracijskim brojem (E-XXXX) + godina rođenja
- Klub OIB i web stranica također scrape-ani
### 8. Cron extensions
- 30 3 * * 6 — Weekly HBS boćarski sweep (subota 03:30)
- 30 3 * * 0 — Weekly HNS klub_all rosters refresh (nedjelja 03:30)
## STATE NAKON RUN-A
### Sportaši (ukupno **1129** scrape-anih + manualno)
- **HNS Semafor**: 408 nogometaši (s utakmicama, golovima, kartonima)
- **HBS savez**: 674 boćari (s reg. brojem, godina rođenja)
- **Manualno**: 47 (test + ranija)
### Po sportu
-**Boćanje: 647 sportaša** (najviše!)
-**Nogomet: 421 sportaša**
- 🤾 Rukomet: 21
- 🏀 Košarka: 7
- 🤽 Vaterpolo: 6
### Utakmice
- **244 utakmica** scrape-anih (sve HNS)
- **5017 utakmice_log redaka**
- **503 golova, 533 žutih, 12 crvenih**
### Embedding
- Qdrant pgz_sport_v1: ~58500 točaka
- 220 savezi + 1637 klubovi + 1129+ sportaša
## ŠTO RADI / NE RADI po savezu
| Savez | Status | Komentar |
|-------|--------|----------|
| HNS (nogomet) | ✅ FULL | semafor.hns.family — full lineup + events |
| HBS (boćanje) | ✅ FULL | hrvatski-bocarski-savez.hr/klubovi/{slug}/ |
| HRS (rukomet) | ❌ | Nema javni player portal |
| HKS (košarka) | ❌ | kosarkapgz.com je vijesti, nema rosters |
| HAS (atletika) | ⚠️ | Klubovi imaju samo adresu, nema igrača (klubovi ih drže privatno) |
| HVS (odbojka) | ❌ | Portal mali, bez rosters |
| HSTS (stolni tenis) | ⚠️ | Ima klub standings ali ne igrače |
| HJS (jedrenje) | ⚠️ | Ima "Verificirani jedriličari" — TODO scraper |
| HVS (vaterpolo) | ❌ | Nema dostupan portal |
| HPS (plivanje) | ❌ | 403 |
## UNIVERZALNI FALLBACK
- Klub admin može ručno dodati sportaše kroz "+ Novi sportaš" gumb u Sportaši grid (Igrači · Foto stranica)
- Klub admin može logirati utakmicu kroz /api/v2/utakmice/log (frontend forma — TODO)
- pgz_admin može dodati u bilo koji klub
- savez_admin može dodati u klubove svojeg saveza
## FRONTEND PAGE-OVI (svi live)
- ⚽ Sport Stats — top scorers/appearances/cards/recent matches
- 👥 Igrači · Foto — galerija svih sportaša s pretragom + dodavanje
- 🔐 Korisnici i prava — full CRUD (edit/reset/toggle/unlock/impersonate/audit)
- Ostali postojeći sport pages
## TODO za sljedeće
1. **HJS verificirani jedriličari** — duplji scrape registra
2. **HSTS rezultati** — match-by-match s individualnim igračima
3. **Frontend utakmica unos** — modal za klub admin da unese utakmicu
4. **HRS** — možda e-mail HRS-u za API pristup
5. **Klub-link UI** + **Permissions matrix UI**
6. **Sportaš ručni unos** prošireno: profil photo upload, datum_pristupa, datum_napustanja
7. **Dashboard widget "Sportaši po sportu"** (pie chart)
## KORISNI URL-ovi
- Frontend: https://api.rinet.one/sport/
- Sport Stats: https://api.rinet.one/sport/api/v2/dashboard/sport-stats
- Klub roster: https://api.rinet.one/sport/api/v2/klub/{id}/sportasi
- Sportaš profil: https://api.rinet.one/sport/api/v2/sportas/{id}/profile
- Sportaš pretraga: https://api.rinet.one/sport/api/v2/sportas/search?q=