# HANDOFF — 30.04.2026 11:30 — BORIS MILANOVIĆ CLEANUP + STATS IMPORT ## 🚨 PRIORITET BR. 1 RIJEŠEN Boris Milanović (PGŽ Stručni suradnik za sport) tražio: 1. ✅ Klubovi prikazuju SAMO sportske + PGŽ sufinancirane (NE posmrtnih, vatrogasaca, KUD-ova) 2. ✅ Provjera podataka 3. ✅ Import službene statistike saveza (Excel) + Šahovski savez (DOCX) ## CLEANUP REZULTAT ### Klasifikacija 2030 klubova → 24 kategorije | Kategorija | Broj | Aktivan | PGŽ sufinanciran | |------------|------|---------|------------------| | **sport_klub** | 1420 | ✓ | ✓ | | **sport_savez** | 33 | ✓ | ✓ | | **sportski_ribolov** | 49 | ✓ | ✓ | | **planinarstvo** (granično) | 40 | ✓ | (Boris odluči) | | kultura (KUD, klape, povijesna) | 81 | ✗ deaktivirano | ✗ | | vatrogasci (DVD/JVP) | 60 | ✗ | ✗ | | dobrotvorna_vjerska | 58 | ✗ | ✗ | | lov | 58 | ✗ | ✗ | | strucna_kulturna | 36 | ✗ | ✗ | | znanstvene_strucne | 35 | ✗ | ✗ | | karneval_tradicija | 23 | ✗ | ✗ | | zdravstvo_socijala (alkoholičari, ovisnici, invalidski) | 20 | ✗ | ✗ | | ekologija_zdravstvo | 22 | ✗ | ✗ | | hobi_udruga (foto, filateli, radio amateri) | 26 | ✗ | ✗ | | servisni_klub (Lions, Rotary, Skal) | 15 | ✗ | ✗ | | poslovni_klub | 7 | ✗ | ✗ | | poljoprivreda | 7 | ✗ | ✗ | | invalidi_branitelji | 5 | ✗ | ✗ | | prijatelji_navijaci | 17 | ✗ | ✗ | | umirovljenici | (uključeno gore) | | | | ostalo_provjeriti (Boris ručno) | 4 | ✗ | ✗ | **Aktivnih ukupno: 1490** (samo sportske) **Deaktiviranih ukupno: 540** (NIJE OBRISANO, samo skriveno; backup: `pgz_sport.klubovi_pre_cleanup_20260430`) ### GUI test - `https://api.rinet.one/sport/` → 0 sumnjivih (vatrogasaca, KUD-ova, posmrtnih) u rezultatima - API endpoint `/api/v2/klubovi/sa-clanstvom?limit=200` već koristi `aktivan=true` filter ✓ ## BORISOVA SLUŽBENA STATISTIKA (Excel + DOCX) Importano u tablicu `pgz_sport.savez_stats_oficijalno`: - **24 saveza** - **267 + 13 (šah) = 280 kategorijskih redova** - **18.007 sportaša ukupno** - 5.495 žena - 10.749 muških - 1.818 veterana ### Top 10 saveza (po broju sportaša) 1. **NOGOMET 5.581** — žene 93, muški 4.616, veterani 592 2. **ODBOJKA 2.047** — žene 1.775, muški 242, veterani 30 3. **KARATE 1.735** — žene 789, muški 777, veterani 169 4. **KOŠARKA 1.115** — žene 277, muški 838 5. **ATLETIKA 999** — žene 449, muški 433, veterani 117 6. **BOĆANJE 980** — žene 148, muški 832 7. **JUDO 961** — žene 663, muški 266, veterani 35 8. **RUKOMET 924** — žene 331, muški 593 9. **JEDRENJE 737** — žene 143, muški 594, veterani 17 10. **KUGLANJE 438** — žene 154, muški 232, veterani 52 11. **ŠAHOVSKI SAVEZ 413** — žene 86, muški 328, veterani 51 ## NOVI API ENDPOINTI | Endpoint | Što vraća | |----------|-----------| | `GET /api/v2/pgz/savez-stats` | 24 saveza s ukupno + ž/m/veterani per savez | | `GET /api/v2/pgz/savez-stats/{savez}` | Detaljna kategorijska razdioba | | `GET /api/v2/pgz/sport-organizacije?kategorija=...&sufinanciran=true` | Filterirani klubovi | | `GET /api/v2/pgz/cleanup-summary` | Pregled cleanup operacije | ## DB IZMJENE ### Nove kolone u `pgz_sport.klubovi` - `kategorija_organizacije TEXT` — vrsta (sport_klub, vatrogasci, kultura...) - `pgz_sufinanciran BOOLEAN DEFAULT FALSE` — flag za PGŽ - `cleanup_reason TEXT` — razlog deaktivacije ### Nova tablica `pgz_sport.savez_stats_oficijalno` - `savez, kategorija, natjecateljki, natjecatelja, veterani, ukupno, izvor` - UNIQUE(savez, kategorija) ### Novi view - `pgz_sport.v_klubovi_sportski` — samo sport_klub, sport_savez, sportski_ribolov, planinarstvo ### Backup - `pgz_sport.klubovi_pre_cleanup_20260430` (svih 2030 redova prije ikakvih promjena) ## PENDING — što Boris treba odlučiti 1. **40 planinarska društva** — sport ili nije? (Hrvatski planinarski savez je član HOO-a, ali PGŽ-u možda nije važan) 2. **4 ostalo_provjeriti** zapisa — ručno pregledati: - "Klub KLEMENTA 1909" - "Klub Skokova u vodu Primorje 2010" - "Likovno društvo Kvarner" - jedna četvrta 3. **6 saveza nemaju Excel statistiku** — provjeriti s Borisom: - GIMNASTIKA (samo Rijeka/Vita ima stats) - PIKADO (kolona prazan TOTAL) ## OPERATIVNI QUICK-REF ```bash # Test cleanup curl -s https://api.rinet.one/sport/api/v2/pgz/cleanup-summary | python3 -m json.tool # Test savez stats curl -s https://api.rinet.one/sport/api/v2/pgz/savez-stats | python3 -m json.tool # Restore deaktiviranih klubova ako se predomislimo PGPASSWORD='R1net2026!SecureDB#v7' psql -h localhost -U rinet -d rinet_v3 -c \ "UPDATE pgz_sport.klubovi SET aktivan = TRUE WHERE id IN (SELECT id FROM pgz_sport.klubovi_pre_cleanup_20260430)" # Vratiti specific klub u sport PGPASSWORD='R1net2026!SecureDB#v7' psql -h localhost -U rinet -d rinet_v3 -c \ "UPDATE pgz_sport.klubovi SET aktivan=true, kategorija_organizacije='sport_klub', pgz_sufinanciran=true WHERE id=" ``` ## FILE INPUTS (Boris) - `klubovi_sportaši_raspodjela_po_savezima.xlsx` (24 saveza, 28×121 grid) - `ŠAHOVSKI_SAVEZ.docx` (13 kategorijskih redaka) Oba file-a snimljena u `pgz_sport.savez_stats_oficijalno`. Buduća dostava preko istog formatа = direktan import.