# đ Logic Spec: Dashboard Header Restructure
## 1. Cél és Masterbook 2 illeszkedés
**CĂ©l:** A privĂĄt garĂĄzs dashboard fejlĂ©cĂ©nek (`DashboardHeader.vue`) ĂĄtalakĂtĂĄsa a felhasznĂĄlĂł specifikĂĄciĂłja szerint:
- **Bal:** đ ĂdvözlĂ©s + keresztnĂ©v
- **Közép:** `{firstName}_garåzsa` (i18n kulcsból)
- **Jobb:** CĂ©gvĂĄltĂł dropdown â NyelvvĂĄltĂł â AvatĂĄr menĂŒ (sorrendben)
- **Layout struktĂșra:** Marad a `PrivateLayout` + `DashboardHeader` felosztĂĄs
**Masterbook 2.0 illeszkedés:** A feladat illeszkedik az Epic 11 (Public Frontend) és a B2C dashboard UX specifikåciójåhoz.
---
## 2. Jelenlegi Problémåk (`DashboardHeader.vue` - 685 sor)
| ProblĂ©ma | LeĂrĂĄs |
|----------|--------|
| P1 - TĂșl komplex | 7 funkciĂł egy komponensben (WelcomeCard, Logo, FunkciĂłk menu, Center label, Org dropdown, LanguageSwitcher, Avatar) |
| P2 - Welcome Card | LebegĆ elem, nem a header rĂ©sze - megtarthatĂł, de auditĂĄlni kell |
| P3 - FunkciĂłk menu | Nem illik a header-be, 100+ sor Bento dropdown - **ELTĂVOLĂTANDĂ** |
| P4 - Logo + Brand | 2 sor + kĂ©p - **ELTĂVOLĂTANDĂ** a header-bĆl |
| P5 - Center label | DuplikĂĄlt logika a jobb oldali org dropdown-nal |
| P6 - Jobb oldal sorrend | Jelenleg: Org dropdown â LanguageSwitcher â Avatar. **MegtartandĂł sorrendben** |
---
## 3. Ăj 3-Oszlopos Header Layout
```
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
â [BAL] [KĂZĂP] [JOBB] â
â đ Ădv, JĂĄnos! JĂĄnos_garĂĄzsa [đą CĂ©gem âŒ] [đ] [đ€] â
â â â â â
â Org Dropdown Lang Avatarâ
â (cĂ©g listĂĄval) Switcherâ
âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
```
### 3.1 Bal oldal: Welcome + keresztnév
```vue
đ
{{ t('header.welcome') }}, {{ displayName }}!
```
**`displayName` computed** - mĂĄr lĂ©tezik, elsĆdlegesen `props.firstName`, fallback email prefix.
### 3.2 KözĂ©psĆ: `{firstName}_garĂĄzsa`
```vue
{{ centerLabel }}
```
**`centerLabel` computed logika:**
- Ha `isOnCompanyGarage` (szervezeti nézetben): `t('header.companyGarageLabel', { name: activeCompanyName })`
- Ha `isCorporateMode` (vĂĄllalati mĂłdban): `t('header.companyGarageLabel', { name: activeCompanyName })`
- KĂŒlönben (szemĂ©lyes mĂłd): `t('header.personalGarageLabel', { name: firstName })`
### 3.3 Jobb oldal (sorrendben: CĂ©g â Nyelv â AvatĂĄr)
**CĂ©g dropdown** - MeglĂ©vĆ funkciĂł tisztĂtva:
- Megtartani: org-dropdown-container (dropdown cég liståval)
- EltĂĄvolĂtani: duplikĂĄlt "FunkciĂłk menĂŒben lĂ©vĆ Organization Menu Item"
- Ăllapotok: nincs cĂ©g â "â Ăj cĂ©g" (navigĂĄciĂł `/company/onboard`); van cĂ©g â "đą CĂ©gem" (dropdown); corporate mĂłd â "đ€ SzemĂ©lyes GarĂĄzs" (visszavĂĄltĂĄs)
**NyelvvĂĄltĂł** - VĂĄltozatlan, 6 nyelv tĂĄmogatĂĄsa.
**AvatĂĄr menĂŒ** - VĂĄltozatlan (Profile, Logout).
---
## 4. EltĂĄvolĂtandĂł elemek
| Elem | Sorok | Hova kerĂŒl? |
|------|-------|-------------|
| Logo + Brand | 30-43 | ELTĂVOLĂTVA |
| FunkciĂłk menu (Bento) | 46-154 | ELTĂVOLĂTVA, kĂ©sĆbb `DashboardView.vue`-ba |
| FunkciĂłk-belĂŒli Org Menu Item | 119-135 | ELTĂVOLĂTVA (duplikĂĄciĂł) |
**Megtartva:** Floating Welcome Card (2-23. sorok) - vizuĂĄlisan elkĂŒlönĂŒl.
---
## 5. Ărintett fĂĄjlok
| Fåjl | MƱvelet | Mérték |
|------|---------|--------|
| `frontend/src/components/DashboardHeader.vue` | **ĂTĂRĂS** ~685 â ~300 sor | Nagy |
| `frontend/src/i18n/hu.ts` | EllenĆrzĂ©s (vĂĄrhatĂłan nincs Ășj kulcs) | AprĂł |
| `frontend/src/i18n/en.ts` | EllenĆrzĂ©s (vĂĄrhatĂłan nincs Ășj kulcs) | AprĂł |
**Nem érintett:** `PrivateLayout.vue`, `OrganizationLayout.vue`, `LanguageSwitcher.vue`, `auth.ts`
---
## 6. AuthStore hasznålt értékei
| ĂrtĂ©k | TĂpus |
|-------|-------|
| `authStore.user?.first_name` | `string \| undefined` |
| `authStore.user?.email` | `string \| undefined` |
| `authStore.myOrganizations` | `OrganizationItem[]` |
| `authStore.hasBusinessOrganization` | `boolean` (computed) |
| `authStore.isCorporateMode` | `boolean` (computed) |
| `authStore.businessOrganization` | `OrganizationItem \| undefined` (computed) |
| `authStore.switchOrganization(id \| null)` | `function` (async) |
---
## 7. Tesztelési terv
1. `vite build` hiba nĂ©lkĂŒl
2. VizuĂĄlis: Bal đ Welcome; KözĂ©p `{name}_garĂĄzsa`; Jobb: CĂ©g â đ â AvatĂĄr
3. Cég dropdown mƱködik (list, select, back)
4. LanguageSwitcher mƱködik (6 nyelv)
5. AvatĂĄr menĂŒ mƱködik (Profile, Logout)
---
## 8. MĂłdosĂtĂĄsi sorrend
1. `DashboardHeader.vue` - Teljes ĂĄtĂrĂĄs
2. `hu.ts` / `en.ts` - EllenĆrzĂ©s
3. `vite build` - VerifikĂĄciĂł
---
## âžïž JĂłvĂĄhagyĂĄsi pont
**Kérem a felhasznåló jóvåhagyåsåt a fenti specifikåcióhoz!**