tipplan
sto_trebaPort worktime modula iz fina-connect u fenix-v3. Arhiva seli na evalidator.eu/archive/. sati.ink postaje SaaS za evidenciju radnog vremena (HR+DE tržište).
prioritetP0
ne_dira[
"vetra.live",
"evalidator-bridge",
"KrunicaChain"
]
kontekst{
"sati_ink_sad": "Digitalna Arhiva PWA na /pub/arhiva/ — funkcionira, ima korisnike, REBRAND",
"worktime_izvor": "fina-connect/worktime/ — 995 linija models.py, 2125 linija timesheet_views.py, 22 template-a, KOMPLETAN modul",
"worktime_podaci": "~20 realnih radnika od 06-11-2025 (u fina_erp ili lokalnoj bazi koju Ivan zna). 309 EmployeeProfile je Synesis greška — ignorirati.",
"viskovic_bau": "Pilot klijent: viskovic-group.de, ~/20 radnika, građevinarska firma (DE), ArbZG zakon",
"gen
faze[
{
"id": "F0",
"naziv": "Arhiva seli — nginx rewrite (0 koda, 15 min)",
"opis": "sati.ink/ → evalidator.eu/archive/ redirect. Ništa se ne briše, samo URL se mijenja.",
"koraci": [
"nginx evalidator conf: dodati location /archive/ → proxy /pub/arhiva/ na port 8001 s Host=sati.ink",
"nginx sati-ink conf: location / → return 301 https://evalidator.eu/archive/$request_uri (sve stare URL-ove preusmjeri)",
"Zadržati sati.ink/genesis/ i sati.ink/accounts/ kao proxy
commit_plan[
"feat(sati-ink): F0 nginx archive redirect na evalidator.eu",
"feat(sati-worktime): F1 nova landing app + template",
"feat(worktime): F2 port modula iz fina-connect — modeli + ZAKON 27",
"feat(worktime): F3 Genesis SSO integracija na sati.ink",
"feat(worktime): F4 Viskovic Bau pilot import",
"feat(worktime): F5 PWA clock in/out mobile",
"feat(worktime): F6 DE lokalizacija + DATEV export"
]
tržišni_model{
"free": "1 radnik, 30 dana, clock in/out + PDF export",
"starter": "5 radnika, €9/mj, + manager odobravanje + JOPPD",
"pro": "neograničeno, €29/mj, + DATEV export + ProjectPhoto + analytics",
"enterprise": "custom, + API, + Konjik fakturiranje, + ArbZG izvještaj za DE inspekciju"
}
lijevaksati.ink besplatno → radnik → radnik pritišće šefa → šef plaća €9-29/mj
veza_s_arhivomSvaki TimeEntry → vetra.live API → zapečaćen (dokaz radnog sata) → evalidator DokArh (ZAKON 32)
zakonZAKON 0 (fizička izolacija), ZAKON 27 (Model Trinity), ZAKON 32 (svaki fix ima chain entry)
KRITICNO_ZA_CC{
"poruka": "ZAKON 3 — TROJNA POHRANA NIJE OPCIJA. Svaki model.objects.create() koji pohranjuje poslovne podatke MORA odmah pozvati get_trojna(). PostgreSQL = brzi upiti = SJENA. Krunica = jedina istina.",
"greska_koju_cc_pravi": "CC pise objects.create() i smatra da je pohrana gotova. NIJE. Bez get_trojna() podaci ne postoje u lancu.",
"koji_modeli_moraju_imati_trojna": [
"TimeEntry — svaki clock-in/clock-out",
"SatiClockLog — svaki GPS clock zapis",
"PayrollRun — svaka platna