← DokArh Portal
feat

Komitent Chat integracija — Redis poruke + dropdown (c1098)

Kreator: genesis Datum: 2026-05-22 Status:
WeisE3™ ID: (nema)
tipfeat
sustavfenix-v4
git_commitfa3ae97
sto_trebaIntegrirati chat modul za komunikaciju računovođa ↔ komitent. Ne WhatsApp — vlastiti sustav. Ne novi Django app — proširiti komitenti modul.
sto_je_napravljeno{ "backend": { "fajl": "komitenti/django_api_urls.py", "novo": [ "KomitentChatPorukaView — POST /api/v4/komitenti/<id>/chat/poruka/", "KomitentChatPovijestView — GET /api/v4/komitenti/<id>/chat/povijest/", "Redis db=7 za chat poruke (ključ: fenix:chat:km:{komitent_pk})", "ZAKON 26: ChatPorukaIn, ChatPorukaOut, ChatPovijestOut TypedDicts", "TTL: 90 dana, max 200 poruka po komitentivida (FIFO trim)" ] }, "frontend": { "fajl": "templates/komitenti
arhitektura{ "storage": "Redis db=7 — brzi, bez migracija, 90-day TTL", "isolation": "komitent_pk + partner_company FK — tenant izolirano", "pattern": "inspiriran genesis chat.js (tahograf), ali self-contained u fenix-v4", "zakoni": [ "ZAKON 26 — TypedDict", "ZAKON 27 — NIJE potrebno (bez Django modela)", "ZAKON 29 — CSS vars" ] }
buducnost_3{ "tech": { "naziv": "Genesis Chat Bridge — SSE/streaming", "opis": "Sync poruke prema genesis fleet API (Celery task) + Server-Sent Events za real-time prikaz bez pollinga. EventSource('/api/v4/komitenti/<id>/chat/stream/')", "prioritet": "FUTURE" }, "sigurnost": { "naziv": "Krunica hash na svakoj poruci (ZAKON 43)", "opis": "Svaka chat poruka nosi krunica_hash (SHA3-256 sadržaja + pošiljatelj + timestamp). Poruke su immutable — edit nije moguć, samo nova poruka. Audit
test{ "manage_check": "0 greška", "gunicorn": "active (fa3ae97)", "http_test": "301 redirect na /hr/login/ — OK" }