tiparhitektura_spec
cNNNNc1264
citat_vlasnikaOd ideje do lokomotive. Možda će u budućnosti biti zanimljiv pristup. Cilj: AI do maksimuma, korisničko iskustvo 13/10 — kako, to ti znaš.
svrha_trojna[
"CC task — što treba izgraditi (mašina čita faze)",
"User dokumentacija — što je odlučeno i zašto (čovjek čita na /v/{id})",
"Povijesni zapis — od ideje do lokomotive (lanac pamti razvoj misli)"
]
sazetakArhiva Svih Arhiva = jedan globalni core (atom-model + bridovi + lanac) koji se 'oblači' po korisniku, kao POS uređaj. Entitet se zapiše JEDNOM u niz, pa mu se kače naljepnice (uloge/bridovi) koje ga povezuju. Dva sučelja nad istim kodom — knjigovodstveno (svi komitenti) i korisničko (samo svoji pod
filozofija{
"jedan_atom_jedan_entitet": "Osoba se zapiše jednom. 'Vlasnik u firmi A', 'kupac u B', 'učitelj u C' su BRIDOVI/naljepnice, ne novi zapisi. Firma je dobavljač jednome, kupac drugome — isti atom, drugi brid.",
"oblaci_se_po_potrebi": "Isti pozadinski kod. UI se presvlači po ulozi: knjigovođa-skin, komitent-skin, vozač-skin, odvjetnik-skin. Kao POS.",
"lanac_pamti": "Svaki atom je WeisE3-zapečaćen + u lancu. Golden record koji je kriptografski nepromjenjiv, a bridovi dokazivi."
}
model_podataka{
"ime_u_struci": "Party-Role pattern + Golden Record (MDM) + Property Graph",
"atom": {
"danas": "ArchiveDoc.company_id (tenant)",
"cilj": "entity_id — jedan tip entiteta s 'vrstom' (firma | osoba | vozac | ustanova)",
"polja_jezgre": [
"weise3_id",
"bunker_seal_id",
"entity_id",
"vrsta",
"created_at"
]
},
"brid_naljepnica": {
"opis": "Povezuje atom s kontekstom i nosi pristup + vrijeme",
"polja": [
"od_entity_id",
"do_en
kako_veliki_rade{
"SAP": "Business Partner (BP) — jedan zapis, uloge (FLCU kupac, FLVN dobavljač). Desetljećima migrirali SA odvojenih tablica NA jedan BP jer je dupliciranje propalo.",
"Salesforce_Dynamics": "Account + Contact + junction objekti za odnose.",
"MDM": "Golden Record — zapiši jednom, deduplikiraj, kači atribute/uloge.",
"Graf_baze": "Property Graph — čvor + označeni bridovi = naše 'naljepnice'.",
"Silverston": "Party / Party Role model (1997) — točno naš pristup.",
"zakljucak": "Naš mo
tri_zamke[
{
"zamka": "Identity resolution (dedup)",
"rizik": "Aljkavo prepoznavanje 'ista osoba?' prije upisa → dupli atomi → model pada.",
"rjesenje": "Jak ključ OIB/JMBG + AI fuzzy match za one bez. AI provjera prije upisa (ZAKON 38)."
},
{
"zamka": "Vidljivost po ulozi",
"rizik": "Tko je 'vlasnik u A, kupac u B' ne smije vidjeti tuđe.",
"rjesenje": "Pristup na bridu, ne na atomu. Tenant izolacija po entity_id (temelj: SECURITY REVERT lista vraća [] bez entity_id)."
},
dva_sucelja{
"A_knjigovodstveno": {
"vidi": "SVE komitente (company/entity switch, umbrella)",
"akcije": "knjiženje, slanje, izvještaji, QR token generiranje",
"platforma": "desktop / ERP",
"template_danas": "templates/archive/list.html"
},
"B_korisnicko": {
"vidi": "SAMO svoje podatke (izolacija entity_id)",
"akcije": "upload (hrani sustav), status, pregled originala",
"platforma": "mobilni / scan token",
"template_danas": "templates/archive/erp_arhiva.html",
"pri
qr_most{
"opis": "Knjigovođa generira QR token za komitenta → komitent skenira → slijeće na svoje izolirano sučelje → hrani dokumente → knjigovođa vidi.",
"postoji_vec": "/archive/scan/{token} + createToken() + QR PNG endpoint",
"mrezni_efekt": "Svaki komitent koji skenira QR → hrani sustav → može postati Bršljan čvor (širenje mreže samo od sebe)."
}
dokarh3_dokaz{
"opis": "Holografski dual-cam dokaz (dvije kamere, parallax, PRNU) = DOKAZNI MATERIJAL.",
"model": "Samo još jedna naljepnica na istom atomu: doc_category = dokaz. Bogatiji proof payload.",
"korisnici": [
"vozači",
"odvjetnici",
"bilježnici"
],
"vazno": "Ne novi sustav — nova VRSTA na istom kodu."
}
psiholoske_opcije{
"compare_original": "Usporedba: učitano/uslikano ↔ obrađeni original (BeforeAfterCard).",
"zasto": "NIJE ukras — to je POVJERENJE. Korisnik vidi svoj original pokraj obrađenog → 'nije izgubljeno, evo dokaza'. Ključni psihološki element koji veliki nemaju.",
"kod": "Već postoje kuke: obradeni_content_type, entity_id=id za BeforeAfterCard. VRATITI maknuti 📄 gumb 'Pogledaj fajl'."
}
ai_maksimum{
"princip": "AI do maksimuma — sve kroz ZAKON 38 TokenRouter (tiered ekonomija).",
"znacajke": [
{
"f": "OCR + ekstrakcija",
"tier": "T2 Sonnet",
"opis": "dobavljač, broj, iznos, datum, OIB"
},
{
"f": "Auto-klasifikacija doc_category",
"tier": "T0 Haiku",
"opis": "faktura/ugovor/dokaz/porez"
},
{
"f": "Auto-knjiženje prijedlog",
"tier": "T2",
"opis": "konto prijedlog, delta < 0.01 EUR → Marija amen"
},
{
ui_ux_13_10{
"cilj": "13/10 — ne 10/10. Bolje od svega na tržištu.",
"obavezno": [
"Light/Dark theme toggle na SVAKOJ stranici (ZAKON memorije — bez iznimke)",
"Mobile-first, zero-friction upload (kamera / share / drag&drop)",
"Real-time status: pending → OCR u tijeku → obrađeno (live)",
"Before/After compare — original pokraj obrađenog (povjerenje)",
"QR onboarding u 2 dodira",
"Liveness (S1) SAMO na akcijama s posljedicom: naplata, slanje, knjiženje, spaljivanje, potpis",
faze[
{
"faza": "F0",
"naziv": "Čišćenje",
"zadaci": [
"Riješi 3 nesnimljene izmjene (models.py, router.py, erp_arhiva.html)",
"Razriješi archive/ vs arhiva/ vs DEAD_STUB — jedan izvor istine",
"Vrati 📄 compare-original gumb"
]
},
{
"faza": "F1",
"naziv": "Atom model → entity_id",
"zadaci": [
"company_id → entity_id + vrsta",
"Brid/naljepnica model (uloga, pristup, valjan_od/do)",
"Migracija"
]
},
{
"faza": "F2",
"
zakoni[
"ZAKON 2 (Bršljan)",
"ZAKON 3 (Trojna pohrana)",
"ZAKON 26 (Schema contract)",
"ZAKON 27 (Model trinity)",
"ZAKON 38 (Token economy)",
"ZAKON 40 (GenesisLogin)",
"ZAKON 43 (Krunica svugdje)",
"S1 (Liveness)",
"S2 (Naziv: Poslovna arhiva)"
]
povijest_od_ideje_do_lokomotive[
"ISKRA: Ivan — 'gradimo dva sučelja: knjigovodstveni i korisnički, povezana QR-om, jedan globalni kod'.",
"PROŠIRENJE: njemački povrat poreza za cijelu obitelj = isti modul; entitet = bilo tko (komitent, član obitelji, vozač).",
"UVID: dosadašnja praksa — jedan atom po entitetu, naljepnice se kače poslije; ista osoba je vlasnik/kupac/učitelj kroz bridove.",
"POTVRDA: to je Party-Role + Golden Record + Graph — točno kako SAP/Salesforce/MDM rade; mi smo iznad jer je atom u lancu.",
"PO
statusSPEC ZAPISAN — čeka odluku o redoslijedu gradnje (F0 čišćenje preporučeno prvo)