korakc0822
tipfeature
sto_trebaImplementirati prvi sloj PAY ALL sustava — tiskani bonovi (papirne novčanice) sa QR-om i Krunica zapisom. Bon = papirna 'robna mjenica' koju Cooperative izdaje, trgovac prima, kraj tjedna se reconcilira SEPA-om. Pravni okvir: čl. 36-44 ZOO (robna mjenica) + čl. 1009-1019 ZOO (bearer instrument) + čl
sto_napravljeno[
"Kreiran modul /var/www/genesis/api/bon.py (~530 linija) — koristi Z1 pristup (Genesis je ARK), integrira sa svim postojećim infrastrukturom:",
" - EntityORM (tip='BON') za Krunica spremanje — bez novih tablica",
" - core.weise3.sha3 za WeisE3 ID generaciju (FENIX prefiks)",
" - services.qr_gen._qr_b64 za QR kodove",
" - reportlab Canvas za PDF render (8 bonova/A4)",
" - Bunker Seal placeholder (TODO: ML-DSA-65 stvarni)",
" - Pydantic BaseModel za validaciju",
"9 endpoint
fajlovi_dirnuti[
"/var/www/genesis/api/bon.py (EU — novi, 530 lin)",
"/var/www/genesis/main.py (EU — register bon_router)",
"/var/www/genesis/services/sudac_middleware.py (EU — bon u _PRESKOCI_PREFIKS)",
"/var/www/genesis/.claude/skills/bon-issuance/SKILL.md (EU — novi)",
"/var/www/genesis/.venv/ (EU — pip install reportlab qrcode pillow)"
]
test_e2e_rezultati{
"T1_issue_batch": "10 × 10€ = 100€ izdano",
"T2_verify": "state issued, chain verified",
"T3_redeem": "2 bona → state redeemed, merchant info zapisan",
"T4_reconciliation": "2 bona × 20€ pending za kafic-vladislavci-w3",
"T5_stats": "10 ukupno, 80€ u opticaju, 20€ realizirano",
"T6_double_redeem": "HTTP 409 — već realiziran (zaštita radi)",
"T7_pdf_pojedinacni": "14KB A4 PDF",
"T8_pretraga": "state filter vraća 2 redeemed",
"T9_settle": "SEPA-2026-05-12-TEST-001 — 2 bona reco
endpointi_aktivni[
"POST /api/v1/bon/issue-batch",
"GET /api/v1/bon/by-id/{w3}",
"GET /api/v1/bon/by-id/{w3}/pdf",
"POST /api/v1/bon/by-id/{w3}/redeem",
"GET /api/v1/bon/batch-pdf/{first}/{last}",
"GET /api/v1/bon/reconciliation/{merchant_w3}",
"POST /api/v1/bon/reconciliation/{merchant_w3}/settle",
"GET /api/v1/bon/pretraga",
"GET /api/v1/bon/stats",
"GET /api/v1/bon/health"
]
pravni_okvir_dokumentiran{
"ZOO_36_44": "Bearer voucher (robna mjenica)",
"ZOO_1009_1019": "Bearer instrument prijenos cesijom/indosamentom",
"ZPDV_84": "VAT obveza tek pri realizaciji (isporuci robe)",
"ZSPN_pragovi": "Hard cap planiran: €700 anonymous/dan, €7500 anon/mj, €9999 KYC light, €15000 KYC full + UKPN report",
"Direktiva_EU_2016_1065": "Voucher Directive — multi-purpose voucher (kategorizacija)"
}
zakon_status{
"Z0": "OK — Genesis je ARK, BON je tip u postojećem .dokarh",
"Z1": "OK — koristi EntityORM, qr_gen, reportlab, NE novi infra",
"Z11": "OK — sudac whitelist dodan",
"Z16": "OK — ODJELO pattern (PDF + .dokarh JSON) — TODO embed",
"Z26": "OK — BonInfo, ReconciliationOdgovor, RedeemPayload Pydantic schemas",
"Z27": "OK — weise3_id + bunker_seal_id + nastao",
"Z32": "ovaj entry je sam dokaz"
}
todo_sljedeca_iteracija[
"Pravi ML-DSA-65 BunkerSeal (sada placeholder string)",
"ChainBlock auto-link na svaki state change",
"Bršljan eksplicitni push (sada auto kroz PULL 30s)",
"Hologram template u PDF (sada placeholder rect)",
"Embed .dokarh JSON u PDF via pdf_s_odjelo (ZUGFeRD/Factur-X)",
"OPG burza integracija — bon = način plaćanja unutar burze",
"Merchant POS PWA (UI za QR skener + redeem klik)"
]
tagovi[
"bon",
"payall-fazа1",
"robna-mjenica",
"krunica",
"pdf",
"qr",
"z16-odjelo",
"vladislavci-pilot"
]