← DokArh Portal
PLAN_ARHIVA

Genesis Inbox — Globalni komunikacijski modul (svi sa svima, po filterima)

Kreator: Ivan + CC Datum: 2026-05-18 Status: PLAN — čeka sprint RACUNI da završi
WeisE3™ ID: c0962_genesis_inbox_2026_05_18
tipPLAN_ARHIVA
verzija1.0
statusPLAN — čeka sprint RACUNI da završi
prioritet3
sustavfenix-v4
serverEU (217.160.71.124) + NEW (31.70.90.84)
dir/var/www/fenix-v4/
sto_trebaZamijeniti WAHA/WhatsApp s vlastitim poslovnim komunikacijskim slojem koji ne ovisi ni o jednoj trećoj strani. Svaki korisnik u NO LIMIT ekosustavu ima inbox. Poruke su DokArh chain entriji — proof + komunikacija istovremeno. Delivery bez instalacije aplikacije.
zasto_ne_waha[ "Meta može blokirati poslovni broj bez upozorenja — regulatorna ovisnost na tuđu infrastrukturu", "Svaka poruka prolazi Meta serverima — poslovni dokazi ovise o trećoj strani", "WAHA server = dodatna kompleksnost, održavanje, licenciranje — bez dugoročne vrijednosti" ]
zasto_nas_sustav[ "Poruka = DokArh proof (BunkerSeal + WeisE3) — auditabilno, nemoguće krivotvoriti", "ref_weise3_id → svaka poruka direktno linkana na entitet (faktura, CMR, booking, vozilo)", "Radi offline (QR token), radi bez smartphonea, radi bez interneta (carinik, vozač)" ]
pogledi_iz_buducnosti[ "Svaki dokument (faktura, ugovor, CMR) nosi Inbox thread uz sebe — komunikacija i dokaz su jedno", "Carinik na granici skenira QR kamiona → prima poruku od vozača offline, bez 5G signala", "Klijentski portal (/client/<token>/) postaje vlastiti inbox — bez registracije, bez lozinke" ]
arhitektura{ "model": "GenesisMessage", "polja": { "sender_weise3_id": "tko šalje (WeisE3 identitet — GenesisLogin)", "receiver_weise3_id": "tko prima (osoba ili entitet)", "channel": "inapp | email | push | sms | qr_callback", "scope": "direct | workspace | company | domain | broadcast", "topic_type": "obavijest | zadatak | dokument | alarm | chat", "ref_weise3_id": "KLJUČ — vezano za koji .dok.json entitet", "status": "sent | delivered | read | archived", "expires_at":
slojevi{ "sloj_1_api": { "opis": "V4 FastAPI endpoints", "rute": [ "POST /api/v1/inbox/send", "GET /api/v1/inbox/ — moje poruke, filtrirano", "GET /api/v1/inbox/unread — badge count za navigaciju", "PUT /api/v1/inbox/{id}/read", "POST /api/v1/inbox/broadcast — admin only, scope=domain" ] }, "sloj_2_delivery": { "opis": "Celery async delivery engine", "kanali": { "inapp": "WebSocket/SSE push na aktivne sesije (trenutno)",
veza_s_postojecim{ "digigraf_chat": "Digigraf chat forma → postaje prvi channel; jedan API endpoint poziv umjesto custom forme", "genesis_login_qr": "QR kod može sadržavati inbox_token → skeniraš, vidiš poruku bez registracije", "dokarh": "Svaki dokument ima ref_weise3_id → sve poruke vezane uz taj dokument", "brsljani_mreza": "Fan-out broadcast ide kroz brsljani stream (db=4) — bez centralnog servera", "klijentski_portal": "/client/<token>/ već postoji → dodati inbox tab bez promjena u auth" }
sprinti{ "INBOX-1": { "status": "TODO", "zadaci": [ "GenesisMessage model + ZAKON 27 polja (weise3_id, bunker_seal_id, created_at, expires_at)", "ZAKON 28 cleanup task za expires_at u istom commitu", "POST /send + GET /inbox + PUT /read endpoints", "Inapp delivery: SSE polling na /api/v1/inbox/stream/{weise3_id}", "Digigraf chat forma → poziva Inbox API (jedan endpoint, bez mijenjanja Digigrafa)", "Badge count (unread) u navigaciji svih Fenix sustava",
zakoni[ "ZAKON 2", "ZAKON 3", "ZAKON 17", "ZAKON 27", "ZAKON 28", "ZAKON 31", "ZAKON 37" ]
napomena_za_ccPočni s INBOX-1. Model u /var/www/fenix-v4/apps/inbox/models.py (kreiraj app). Delivery engine u /var/www/fenix-v4/services/inbox_delivery.py. API rute u /var/www/fenix-v4/api/v1/inbox.py. Digigraf integracija: POST na /api/v1/inbox/send s topic_type='chat' i scope='direct'. Svaki send() mora kreira