{"id":"c0187","filename":"c0187_arhiva2030_sprint4_plan.dok.json","weise3_id":"","tip":"plan","naziv":"ARHIVA 2030 — Sprint 4: Javna verifikacija + Re-analiza + Search","kreator":"genesis","datum":"2026-05-09","snippet":"","status":"DONE","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"plan","id":"c0187","naziv":"ARHIVA 2030 — Sprint 4: Javna verifikacija + Re-analiza + Search","sto_treba":"Tri stupa koji arhivu čine prodajnom: (1) javna verify stranica s quantum/OCR prikazom bez logina — dokaz za klijente; (2) re-analiza starih dokumenata koji nemaju OCR; (3) search po OCR poljima — filter fakture/ugovori/datum/iznos. Bez ovih funcionalnosti arhiva je interni alat, ne produkt.","status":"DONE","datum":"2026-05-09","faze":{"S4-1":{"naziv":"Javna verify stranica — quantum seal + OCR preview + savings (bez logina)","opis":"GET /v/{weise3_id} (Next.js public route) + /v/{weise3_id}/json (FastAPI) — prikaz: autenticnost, quantum_validan, tip dokumenta, iznos, datum, OCR pouzdanost, usteda_posto. Bez privatnih podataka.","fajlovi":["api/archive.py — /v/{weise3_id}/json endpoint (bez auth)","sucelje/web/app/verify/[weise3_id]/page.tsx — redesign s quantum+OCR"],"status":"DONE"},"S4-2":{"naziv":"Re-analiza endpoint + gumb u frontendu","opis":"POST /api/v1/docs/{weise3_id}/reanaliziraj — trigerira analiziraj_dokument() za stare dokumente koji nemaju OCR. Frontend: gumb 'Analiziraj' na svakom dokument bez ocr_dostupno.","fajlovi":["api/archive.py — POST /reanaliziraj (uzima original_bytes iz .bin ili bundlea)","sucelje/web/app/(erp)/erp/arhiva/page.tsx — ReanalyzeGumb"],"status":"DONE"},"S4-3":{"naziv":"Search + filter po OCR poljima","opis":"GET /api/v1/docs/?tip=faktura&min_iznos=100&max_iznos=5000&datum_od=2026-01 — filter po tip_dokumenta, iznos_ukupno range, datum, dobavljac (ILIKE). Frontend: SearchBar s filterima.","fajlovi":["api/archive.py — lista_dokumenata() prosirena s filterima","sucelje/web/app/(erp)/erp/arhiva/page.tsx — SearchBar + filter panel"],"status":"DONE"},"S4-4":{"naziv":"StorageStats API + dashboard kartica","opis":"GET /api/v1/docs/stats — {ukupno_dokumenata, ukupno_usteda_mb, usteda_posto_avg, ocr_coverage_posto, tipovi: {faktura: N, ugovor: N,...}, quantum_sealed: N}. Frontend: StatsDashboard na vrhu arhiva stranice.","fajlovi":["api/archive.py — GET /stats endpoint","api/schemas.py — StorageStatsOdgovor","sucelje/web/app/(erp)/erp/arhiva/page.tsx — StatsDashboard"],"status":"DONE"}},"zakon":["ZAKON 26","ZAKON 29","ZAKON 32"],"zavrsen":"2026-05-09","commit":"6be4adb"}}