# Revizija seje – CM Free/Plus/PRO struktura in clean distribucija

## 1. CM Free clean paket stabiliziran

V tej seji sva dokončno stabilizirala clean distribucijski paket za CM Free.

Končno stanje paketov:

```text
/var/www/html/cmfree/downloads/cmfree_clean_1.2.1.zip
/var/www/html/cmfree/downloads/cmfree_clean_amd64_1.2.1.deb
```

Preverjeno:

```text
Copy prices v ZIP ✅
Copy prices v DEB ✅
missing_source_mode + fallback_price logika v obeh ✅
stray/runtime datoteke odstranjene ✅
admin_key.txt ni v paketu ✅
paketa sta bistveno manjša in čistejša ✅
```

Končne velikosti:

```text
cmfree_clean_1.2.1.zip        631K
cmfree_clean_amd64_1.2.1.deb  352K
```

Backup prejšnjih paketov:

```text
/var/www/html/cmfree/downloads_backup_20260609_232130
```

## 2. Copy prices funkcija vključena v Free clean paket

V clean ZIP in DEB je zdaj vključena nova admin funkcija:

```text
Copy prices / Kopiraj cene
```

Vključene datoteke:

```text
admin/admin_calendar.php
admin/ui/js/calendar_shell.js
admin/api/pricing/copy_prices.php
```

Funkcija podpira:

```text
- kopiranje cen iz izbranega obdobja
- kopiranje celotnega leta
- ciljni začetni datum
- odstotni popravek, tudi negativen
- zaokroževanje
- overwrite/no-overwrite
- preview pred zapisom
- manjkajoče source cene:
  - skip
  - use previous
  - fixed fallback price
```

Posebno pomembno: dodana je `fallback_price` logika, ker je v CM bolje imeti “nepopolno, a uporabno ceno” kot dan brez cene, saj dnevi brez cene niso uporabni za public booking flow.

## 3. app_zip očiščen

`/var/www/html/app_zip` je bil očiščen očitnih stray/runtime datotek:

```text
admin/reviews/A3AM1T~B
cmfree_clean_1.2.1.zip
public/data/reviews/public.json
public/data/reviews/summary.json
public/admin/inquiries.php.png
```

Preverjeno je bilo tudi, da v `app_zip` ni:

```text
admin_key.txt
*.php.txt
*.js.txt
*.css.txt
notranjih *.zip paketov
```

Dokumentacijske `.txt` datoteke ostanejo v paketu, ker so smiselne:

```text
Deploy_readme.txt
INSTALL_hosted.txt
User_guide.txt
*.readme.txt
```

## 4. GitHub main poenoten in pushan

GitHub `main` je zdaj čist in posodobljen.

Zadnji commiti:

```text
dbbe1f7 Add strict types to root redirect
2eac478 Add price copy modal with yearly copy and fallback pricing
1c7f3b2 Change redirect location to admin root with 302 status
```

Končno stanje:

```text
working tree clean ✅
origin/main up to date ✅
```

V `index.php` je dodan:

```php
declare(strict_types=1);
```

Root redirect ostaja:

```php
header('Location: /app/admin/', true, 302);
exit;
```

## 5. Razjasnjena razlika med Git repo in app_zip

Ugotovljeno je bilo, da razlike med Git repo in `app_zip` niso vse napake.

Najpomembnejša odločitev:

```text
common/lib/phpqrcode/... ostane v Git repo ✅
```

Razlog:

```text
phpqrcode je še vedno Free/vendor QR varianta.
To ni isto kot Plus/PRO SVG oziroma qrencode pot.
Zato tega ne brišemo iz Git repozitorija na silo.
```

`app_zip` je distribucijsko očiščen, Git repo pa lahko vsebuje širši Free source kontekst.

## 6. admin_key.txt odločitev

Potrjeno:

```text
common/data/admin_key.txt ne sodi v clean paket.
```

Razlog:

```text
opening_wizard.php ga ustvari ob prvem zagonu, random.
```

Zato ga ne dodajamo v `app_zip`, ZIP ali DEB.

V Git lahko ostane samo primer:

```text
common/data/admin_key.txt.example
```

## 7. Ustvarjena nova Git strategija

Do zdaj je bil Git predvsem Free distribucijski source.

Danes sva naredila pomemben organizacijski korak in ustvarila tri glavne veje:

```text
main  = CM Free stable/distribution source
plus  = prihodnja CM Plus veja
pro   = prihodnji CM PRO playground
```

Končno stanje vej:

```text
* main dbbe1f7 [origin/main] Add strict types to root redirect
  plus dbbe1f7 [origin/plus] Add strict types to root redirect
  pro  dbbe1f7 [origin/pro] Add strict types to root redirect
```

Vse tri veje trenutno kažejo na isti stabilni commit:

```text
dbbe1f7 Add strict types to root redirect
```

To je namenoma. Od tu naprej se razvoj lahko začne ločevati bolj moderno in pregledno.

## 8. Pomembna konceptualna odločitev

Projekt CM se zdaj formalno deli na tri razvojne smeri:

```text
CM Free
- javna osnovna distribucija
- čist ZIP/DEB
- Git main
- ne vsebuje Plus/PRO logike po nepotrebnem

CM Plus
- nadgradljiva verzija nad Free
- reviews
- autopilot
- SEPA QR
- Plus upgrade wizard
- upgrade package
- Git plus veja

CM PRO
- ločena profesionalna/commercial razvojna smer
- Time Engine
- EV charging
- advanced reservations
- payment lifecycle
- PRO pogodbe, revizije, eksperimenti
- Git pro veja
```

To pomeni, da GitHub od zdaj naprej ni več samo skladišče Free paketa, ampak postaja skupni zemljevid evolucije CM projekta.

# Plan za naslednjo sejo

## 1. Začeti z novim Git workflowom

Naslednjo sejo začnemo iz nove strukture:

```text
main  → Free
plus  → Plus
pro   → PRO
```

Prvi cilj bo določiti pravila dela:

```text
- na kateri veji delava
- katera mapa je source
- katera mapa je runtime/test
- kaj se sme pushati
- kaj ostane lokalno
```

Predlagan osnovni model:

```text
main:
  samo Free clean stabilne spremembe

plus:
  Plus upgrade paket, review sistem, SEPA, autopilot

pro:
  app_pro playground, Time Engine, EV charging, commercial features
```

## 2. Plus veja – prvi naslednji kandidat

Naslednji praktični korak je verjetno `plus` veja.

Cilj:

```text
plus veja naj postane prava osnova za CM Plus stabilizacijo.
```

Vanjo kasneje urejeno prenesemo:

```text
- Plus upgrade wizard
- reviews
- autopilot UI/API
- SEPA QR knjižnico
- payment lifecycle skeleton
- Plus dokumentacijo
```

Pomembno: to ne gre več v `main`, razen če gre za Free-safe funkcijo.

## 3. PRO veja – kasnejši playground

`pro` vejo sva danes samo ustvarila.

V naslednjih sejah se odločiva, ali:

```text
A) PRO uvoziva iz /var/www/html/app_pro v isto repo vejo pro

ali

B) PRO dolgoročno dobi ločen repo
```

Za zdaj je `pro` veja dovolj kot GitHub-visible playground marker.

## 4. Nadaljevati Plus stabilizacijo

Po vzpostavitvi Git workflowa nadaljujeva s Plus stabilizacijo:

```text
- test clean Free install
- test /app/ redirect
- test opening wizard
- test first_use_init
- test admin calendar
- test Copy prices v sveži instalaciji
- potem šele Plus upgrade overlay
```

## 5. Ohraniti pomembno pravilo

Za CM projekt ostaja pravilo:

```text
Ne ugibava.
Pred večjimi posegi vedno preveriva aktualne datoteke.
Za kodo najprej “pišem?!”.
```

## Zaključek seje

Današnja seja je zaključila eno pomembno fazo:

```text
CM Free clean package stabilized ✅
Copy prices included ✅
ZIP/DEB rebuilt ✅
Git main clean ✅
plus/pro branches created ✅
projekt pripravljen za modernejši razvojni workflow ✅
```
 
