# Seglo CHANGELOG — consumer upgrade notes

> **Standartinis update (VISADA tinka, leidžiamas kiekvieną deploy):**
>
> ```bash
> composer update
> php artisan migrate --force
> php artisan seglo:upgrade --force
> php artisan themes:publish-assets
> php artisan vendor:publish --tag=package-assets --force
> php artisan optimize
> ```
>
> `seglo:upgrade` yra **idempotentinis** ir absorbuoja beveik viską, ką dev serverio
> užduotys prideda: naujus permission'us / role'es (per `cms:sync-permissions`),
> naujus per-modulio permission seeder'ius, temų eilutes, viešo landing'o puslapius
> ir per-aplinkos temų default'us. Migracijas paima atskiras `migrate --force`
> (bėga PRIEŠ upgrade — schema turi egzistuoti anksčiau nei ją liečia seeder'iai).
>
> `seglo:upgrade` **NIEKADA neliečia tenant'ų** — nei jų DB, nei duomenų. MBKR demo
> duomenys lieka atskiroje, opt-in `seglo:demo` komandoje.
>
> **Žemiau — TIK žingsniai, kurių ta komanda NEabsorbuoja** (naujas `.env`, Satis
> rebuild, breaking change, vienkartinis rankinis veiksmas). Jei užduoties čia nėra —
> vadinasi, standartinio update pakanka.

---

## task-140 — ERP ekspansijos integracija (Moduliai 1–6 UŽBAIGTI)

- **Standartinio update PAKANKA** struktūrai: `seglo:upgrade` jau sėja visų šešių
  ekspansijos modulių teises (Sellers/Clients/Products/Invoicing/Banking/Export) ir
  per `cms:sync-permissions` pasiima naujus route-derived permission'us. Naujų
  CENTRAL migracijų šis task'as neneša.
- **⚠️ `php artisan tenants:migrate --force` PRIVALOMAS**, jei consumer'is dar
  nepaleido jo po task-118…138 — ekspansija pridėjo tenant lentelių šešiuose
  paketuose (`seglo_products`, `seglo_invoices`, `seglo_bank_*` ir t. t.).
  `php artisan migrate` jų NEMATO.
- **🔑 NAUJA: `seglo:install --with-content [--fresh]`.** Iki šiol demo tenant'as
  buvo tik atskira `seglo:demo`; dabar install'as gali jį provisioninti tuo pačiu
  paleidimu. `--with-content` deleguoja į `seglo:demo` (viena implementacija) ir
  **persiduoda `--force`** — be jo demo išlaiko savo CREATE-grant pre-flight'ą, tad
  hostas be grant'o gauna sakinį, ne stack trace'ą. `--fresh` be `--with-content`
  nieko nedaro ir tai pasako (jis perkuria TIK demo tenant'ą).
- **🔑 DEMO TENANT'AS DABAR PARUOŠTAS IŠRAŠYMUI.** `seglo:demo` (ir
  `seglo:install --with-content`) nuo dabar sėja ir ekspansijos tenant duomenis:
  pardavėjo rekvizitus, **numeracijos serijas (RAT/IS/KR)**, 4 klientus, katalogą ir
  bankų kategorijų chartą. Iki tol kiekvieną reikėjo sėti ranka
  (`tenants:seed --class=…` per modulį), o **be serijų „Išrašyti" atsisakydavo** ir
  priežastis buvo už dviejų ekranų. Visi penki seeder'iai idempotentiški ir
  self-skip'inasi be savo lentelės — pakartotinis `seglo:demo` nieko nedubliuoja.
- **Elgsenos pokytis ekrane:** avataro meniu gauna „Bankų apžvalga", ⌘K paletė —
  „Likučių importai", „Sąskaitų importai", „Bankų apžvalga". Tie trys ekranai
  egzistavo nuo task-120/130/135, bet buvo pasiekiami tik įvedus URL arba iš vidinės
  sub-nav. Jokių naujų route'ų, jokių teisių pokyčių.
- **Naujų `.env` reikšmių, composer dep'ų ar Satis rebuild'o NĖRA.**

---

## task-135 — bankų apžvalga + kliento atpažinimas

- **Standartinio update PAKANKA.** Naujų migracijų NĖRA; `themes:publish-assets`
  (jau grandinėje) paskelbia perbuild'intą `seglo.js` — be jo naujas „Susegti…"
  mygtukas bankų pulte tiesiog nieko nedaro, o eilutės forma toliau susega
  (progressive enhancement, ne pakaitalas).
- **Kliento stulpelis („Kas sumokėjo") yra SOFT.** Jis rodomas TIK ten, kur
  įdiegti IR sumigruoti `va-seglo/rules` (`identity_map`) ir `va-seglo/clients`
  (`seglo_clients` + task-116 `identity_map.client_id` stulpelis). Trūkstant bet
  kurio, pultas pasako KURIO — ekranas nesulūžta. Jei stulpelio norima, o jo nėra:
  `php artisan tenants:migrate --force`.
- Elgsenos pokytis: ryšys įsimenamas prie **IBAN**, ne prie operacijos, tad
  susiejus vieną eilutę visos kitos to paties banko sąskaitos eilutės (ir senos, ir
  būsimos) rodo tą patį klientą.

---

## task-105 — `seglo:upgrade` + deploy un-gate

- **Vienkartinis:** atnaujink Forge deploy skriptą pagal [`INSTALL.md`](INSTALL.md)
  („Forge / production deploy"). Anksčiau `seglo:install` buvo **marker-gated**
  (`if [ ! -f storage/app/.viartas-installed ]`) → bėgo TIK pirmą kartą, todėl
  vėlesnės užduotys consumer'io nepasiekdavo. Dabar `seglo:upgrade --force`
  paleidžiamas **kiekvieną deploy**, o marker'is dengia tik tikrą first-time
  bootstrap'ą (`CmsBootSeeder` + `seglo:install`).
- Marker'io trinti NEREIKIA — jis toliau teisingai saugo pirmojo karto seed'ą.
- `seglo:install` **lieka** (fresh host bootstrap'as); `seglo:upgrade` yra ta pati
  grandinė recurring vardu — abi dalinasi vieną implementaciją, todėl išsiskirti
  negali.

## task-49 — viešas marketingo landing'as

- **Sąlyginis:** landing'as (`/`, `/seglo/*`) reikalauja `va-modules/pages` —
  jis NĖRA hard require. Jei nori viešo landing'o:
  `composer require va-modules/pages && php artisan migrate && php artisan seglo:upgrade --force`.
- Be Pages `seglo:upgrade` spausdina „pages table missing — skipped" ir tyliai
  praleidžia — tai **ne klaida**, o numatyta minimalaus install elgsena.
