{"id":"c0031","filename":"c0031_faza7_ui_multitenant_switcher.dok.json","weise3_id":"","tip":"plan_faza","naziv":"c0031 — FAZA 7: UI multi-tenant switcher + role-based UX","kreator":"CC","datum":"2026-05-03T13:44:22.604125+00:00","snippet":"","status":"","prev_weise3":"","bunker_l":"#00d4ff","full":{"tip":"plan_faza","kreator":"CC","nastao":"2026-05-03T13:44:22.604125+00:00","naziv":"c0031 — FAZA 7: UI multi-tenant switcher + role-based UX","prev_chain":"c0030","parent_master":"c0024","cilj":"Korisnik koji ima role u vise tenanta (Ivan = Konjik root + Limit voditelj + Optika voditelj) moze brzo prebacit kontekst.","koraci":{"7.1":{"naziv":"Top-bar tenant switcher","akcije":["Header komponenta: dropdown s listom user_tenants (iz session.tenant_scope)","Klik na tenant -> POST /tenants/{tenant_id}/activate -> session.aktivni_tenant_id se mijenja","Indikator boje per tenant (Konjik=zlatna, Limit=plava, Optika=zelena)"],"fajlovi":["sucelje/web/components/TenantSwitcher.tsx"]},"7.2":{"naziv":"Role-based dashboard","akcije":["Konjik root admin -> vidi sve podruznice + sve komitente + financijski overview","Limit knjigovodja -> vidi listu komitenata + pending OCR + mjesecni rokovi","Optika voditelj -> vidi narudzbe + zalihe + pacijenti queue","Glazbenik (kao tenant izdavatelj) -> vidi vlastite slusatelje + statistike preuzimanja","Pacijent -> vidi svoju sobu (1 kanal po tipu)"],"fajlovi":["sucelje/web/app/dashboard/page.tsx","sucelje/web/app/dashboard/[role]/page.tsx"]},"7.3":{"naziv":"Impersonate UI bar","akcije":["Kad limit_admin act_as komitent_a -> crveni gornji bar \"Radis u ime Komitent A\" + gumb \"Vrati se\"","Audit: svako svrastanje impersonacije = dokarh sealed (vec u c0026 dovrseno backend)"],"fajlovi":["sucelje/web/components/TenantImpersonateBar.tsx"]},"7.4":{"naziv":"Notifikacije inbox","akcije":["Header bell ikona — broj nepročitanih notifikacija","Klik -> dropdown s nedavnim notifikacijama (sealed dokarh tip=notifikacija)","Filter per tenant (Konjik / Limit / Optika)"],"fajlovi":["sucelje/web/components/NotifInbox.tsx"]}},"acceptance_kriteriji":["Login kao ivan_brtan -> dropdown ima 3 opcije (Konjik, Limit, Optika)","Switch na Limit -> dashboard se mijenja u \"knjigovodja\" mod","Limit dashboard -> klik komitent_a -> ulazi u sobu komitenta","Impersonate komitent_a -> crveni bar vidljiv, \"Vrati se\" radi","Pacijent login -> vidi samo svoju sobu, NEMA tenant switchera (samo jedan tenant)"]}}