5.4 KiB
5.4 KiB
HANDOFF — 29.04.2026 ~20:00 (sprint dok je Damir radio)
✅ DONE u ovom sprintu
A) Tri API 500 GREŠKE → SVE POPRAVLJENE
- Audit endpoint
/api/v2/admin/audit?limit=100→ 500 zbogcolumn a.created_at does not exist
→ FIX:/opt/pgz-sport/pgz_sport_v2_router.pylinija 383:a.ts AS created_at, a.meta AS payload, a.resource_type, a.resource_id, a.ip_address
→ Backup:pgz_sport_v2_router.py.bak.{ts}
→ Sad vraća 401 (auth required) ne 500 - Manifestacije
/api/manifestacije→ 500 zbogcolumn reference "naziv" is ambiguous(m.naziv vs s.naziv)
→ FIX:/opt/pgz-sport/pgz_sport_api.pysort_colmapping →m.naziv,m.razina,m.godina_od,m.mjesto
→ Sad 200 OK + 113 manifestacija - Full-profile
/api/v2/clanovi/{id}/full-profile→ 500 zbog%u SQL koji je psycopg2 čitao kao parametar
→ FIX:% 100→%% 100u LPAD CASE expressionu
B) GitHub PAT NOVI snimljen
/opt/secrets/github_pat(chmod 600)/opt/.env.rinetGITHUB_PAT=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
C) HNS Semafor scraper - REAKTIVIRAN (stari dobri)
/opt/pgz-sport/scrapers/hns_semafor.py(BeautifulSoup, 598 linija) - daleko bolji od mog v2- SEED: 21 PGŽ klubova mapirani sa hns_klub_id
- KLUB_ALL: pucanje na 22 PGŽ klubova u background → trenutno 408 sportaša + 5,017 utakmica + 4 natjecanja
- Stanje po klubovima:
- NK Zamet 37, NK Rikard Benčić 36, NK OŠK Omišalj 32, NK Vihor 30, NK Klana 30
- HNK Lovran 30, NK Vrbovsko 30, NK Lokomotiva 30, NK Mune 29, NK Krk 29
- HNK Goranin 26, NK Risnjak 26, NK Omladinac Vrata 22, NK Draga 22
- Log:
/opt/pgz-sport/_logs/hns_klub_all.log
D) NOVI ENDPOINTI (HNS Semafor stil profil)
GET /api/v2/clanovi/{cid}/full-profile- kompletni HNS Semafor stil profil:- sportaš osnovni podaci + slika + dres + pozicija
- trenutna sezona stats (4 KPI)
- sezone agregirane (sezona + natjecanje × N P Ž C)
- karijera (klubovi kroz vrijeme)
- utakmice (zadnjih 50)
- totals
GET /api/v2/klubovi/{kid}/clanovi- HNS Semafor stil pregled članstva klubaGET /api/v2/klubovi/sa-clanstvom- svi klubovi sa brojem članova + HNS izvor
E) GUI UPGRADE
pageSportas()koristi novi/full-profileendpoint (kompatibilnost s starom strukturom)pageKlubRoster()dobio HNS Semafor link badge ↗ + "+ Sportaš" gumb za klub_adminaddSportasPrompt(klub_id)funkcija za brzi dodavanje sportaša
F) MULTI-TENANT users mapping POPRAVLJEN
| ID | Type | Klub/Savez | |
|---|---|---|---|
| 1 | damir@rinet.one | super_admin | - (sve) |
| 2 | pgz.lukanovic@pgz.hr | pgz_admin | - (PGŽ scope) |
| 3 | pgz.djelatnik@pgz.hr | pgz_user | - |
| 4 | pgz.finance@pgz.hr | pgz_finance | - |
| 5 | zzjz.medical@zzjzpgz.hr | pgz_zzjz | - |
| 6 | tajnik.hnk@rijeka.hr | savez_admin | savez=Nogometni savez PGŽ (10) |
| 7 | tajnik.kvarner@kk.hr | klub_admin | klub=KK Kvarner - Rijeka (2285) |
| 8 | tajnik.zamet@rk.hr | klub_admin | klub=RK ZAMET (2321) |
| 9 | sportas.test@example.hr | klub_clan | - |
G) DOKUMENTI + EMBEDDING
- 253 dokumenti (povijesni o klubovima ranije ingestani: HŠK Victoria 1908, Stadion Kantrida, RK Zamet, Atletska dvorana Sušanj, BK Rijeka, Cvijet Mediterana, Klub Ocean ronjenje, Najbolji PGŽ 2025, NK Opatija 1911, HNK Orijent 1919)
- 1.721 chunks embeddani u Qdrant
pgz_sport_dokumenti_v1
H) AI SMOKE TEST PROŠAO
| Pitanje | Mod | Odgovor |
|---|---|---|
| Tko je Ahmad Sharbini? | SQL | nogometaš član HNK Rijeka 2006 ✓ |
| Tko je Mirza Džomba? | SQL | rukometaš RK Zamet ✓ |
| Tko je Luciano Sušanj? | SQL | hrvatski atletičar AK Kvarner Autotrans, I HOO ✓ |
| Što je Stadion Kantrida? | RAG | povijesni stadion 1913, dom HNK Rijeke ✓ |
| Tko je Petar Klovar? | SQL | hrvatski ronilac Klub Ocean Rijeka ✓ |
| Što je RK Zamet? | SQL | rukometni klub Rijeka 1954/1957, Premijer liga ✓ |
📊 STATE u 20:00
klubovi total: 1.996
sportasi total: 2.145 (od kojih 408 iz HNS Semafor auto-sync)
utakmice_log: 5.017
dokumenti: 253
chunks embedded: 1.721 (Qdrant)
HNS klubovi: 22 (od 22 seedanih)
🔄 PENDING (za sljedeći sprint)
- Auto-povlačenje s drugih saveza: HKS (košarka), HVS (vaterpolo), HRS (rukomet), HBS (biciklizam) - nemaju Semafor ekvivalent ali svaki ima neku DB
- GUI puna konsolidacija app.rinet.one stil - postoje već cards/grids ali treba ujednačiti SVE: ikone (lucide), boje, padinge
- Pregled sportaša s vremenom: stari sportaši koji više nisu u klubu
- Ostale GUI sekcije: Manifestacije, Sport Stats, ZZJZ - imaju sve podatke ali GUI prikaz minimalniji
- Search ujedinjeni: jedna search bar za klubove + sportaše + manifestacije
- Sportaš edit: full edit form za klub_admin (trenutno samo brzi prompt)
Operativni quick-ref
- Bridge:
curl -X POST https://api.rinet.one/bridge/exec -H "X-API-KEY: rinet-yS4ZnKlwUqsjk" -d '{"cmd":"..."}' - DB:
host=localhost dbname=rinet_v3 user=rinet password=R1net2026!SecureDB#v7 - HNS scraper modes:
python3 /opt/pgz-sport/scrapers/hns_semafor.py [seed|player <pid>|klub <db_kid>|klub_all|daily] - GUI: https://api.rinet.one/sport/
- Service:
systemctl restart pgz-sport.serviceport 8095 - BGE-M3: localhost:9879 (CUDA, dim=1024)
- Qdrant: 10.10.0.2:6333 collection
pgz_sport_dokumenti_v1 - GitHub PAT:
cat /opt/secrets/github_pat