Refactor PVC models and update tests

- Updated the PVC models in the database and adjusted the tests accordingly to reflect the new model counts and codes.
- Removed deprecated models from the JSON data for PVC systems.
- Added new GLB models for "scorrevole_sf_3_ante" and "scorrevole_sf_4_ante".
- Enhanced the development scripts to streamline the build process for both frontends.
- Updated documentation to reflect changes in the development environment and deployment process.
- Improved the styling of texture radio options for better visibility.
- Fixed URL handling in the configurator to ensure proper routing and API calls.
This commit is contained in:
2026-10-20 18:40:59 +02:00
parent b6a32edfe6
commit 0dfda3a338
33 changed files with 339 additions and 366 deletions
+12 -24
View File
@@ -18,7 +18,7 @@ riassuntivo e invia le email a cliente e amministratore.
2. `starter.js` invia `POST /api/carrello/aggiungi` (con `sistema`, `type`, dimensioni, prezzo, payload,
screenshot PNG). Il backend crea/aggiorna un `preventivo` (stato `bozza`) identificato da un `token`
salvato in `localStorage`.
3. Il pulsante "Vai al preventivo" apre l'app cliente passando il token: `…/?token=XXX`.
3. Il pulsante "Vai al preventivo" apre l'app cliente passando il token: `/preventivo/?token=XXX`.
4. L'app cliente mostra il carrello, l'utente compila i dati e conferma → `POST /api/carrello/{token}/conferma`.
5. Il backend crea il `cliente`, imposta lo stato a `inviato`, genera il PDF e invia le email
(cliente con PDF allegato + notifica admin). Il preventivo è visibile nel backoffice.
@@ -33,20 +33,14 @@ php artisan migrate --seed # crea le tabelle + utente admin
php artisan storage:link
php artisan serve --port=8000 # API + admin su http://localhost:8000
# 2. App cliente (cartella cliente/)
cd cliente
pnpm install
pnpm dev # http://localhost:5199
# 3. Configuratore (root del repo)
# 2. Frontend: configuratore + app cliente, compilati in public/ (dalla root del repo)
cd ..
pnpm dev # http://localhost:5173
./build.sh # -> public/configuratore e public/preventivo
```
Le tre porte (8000 / 5199 / 5173) sono fisse (`strictPort: true` nei rispettivi `vite.config.js`): se una è
già occupata l'avvio fallisce con un errore esplicito invece di spostarsi silenziosamente su un'altra porta
— evita che il configuratore e l'app cliente finiscano per caso sulla stessa porta (successo in passato,
dato che entrambi avevano `5174` come default).
Configuratore e app cliente sono serviti da questo backend: <http://localhost:8000/configuratore/?sistema=pvc&type=finestra_2_ante>
e <http://localhost:8000/preventivo/>. In sviluppo `./dev.sh` (root) avvia Laravel e ricompila i frontend
a ogni modifica. Dettagli in `../docs/PREVENTIVI_BACKOFFICE.md`.
### Credenziali admin (seed di default)
- URL: <http://localhost:8000/admin>
@@ -62,19 +56,13 @@ In produzione configurare SMTP nel `.env`.
|---|---|
| `DB_*` | MySQL: `127.0.0.1`, `root`, no password, `kreios_preventivi` |
| `ADMIN_NOTIFY_EMAIL` | Email che riceve la notifica di nuovo preventivo |
| `APP_FRONTEND_CLIENTE_URL` | URL dell'app cliente (per i link) |
| `CORS_ALLOWED_ORIGINS` | Origini autorizzate all'API (default `*` in dev) |
| `APP_FRONTEND_CLIENTE_URL` | URL dell'app cliente, solo se non servita da qui (default `APP_URL/preventivo`) |
| `CORS_ALLOWED_ORIGINS` | Origini esterne autorizzate all'API (default `*`; i frontend serviti da qui non ne hanno bisogno) |
### Configuratore (`../src/js/starter.js`)
`PREVENTIVI_API_BASE` è l'unico indirizzo che il configuratore deve conoscere a priori (default
`http://localhost:8000/api`, sovrascrivibile con `window.PREVENTIVI_API_BASE` prima del bundle). L'URL
dell'app cliente **non è hardcoded**: all'avvio il configuratore chiama `GET /api/config` e usa il
`frontend_cliente_url` restituito da Laravel (letto da `APP_FRONTEND_CLIENTE_URL` nel `.env`) — così non c'è
da tenere sincronizzati due URL se la porta Vite dell'app cliente cambia (es. per conflitto con altre porte
occupate). `window.APP_CLIENTE_URL` resta come fallback locale se il backend non è raggiungibile.
### App cliente (`cliente/.env`)
`VITE_API_BASE` — URL base dell'API Laravel (default `http://localhost:8000/api`).
### Frontend
Configuratore e app cliente chiamano l'API sulla stessa origine (`${location.origin}/api`): nessuna
variabile da impostare. `VITE_PREVENTIVI_API_BASE` (root) / `VITE_API_BASE` (`cliente/`) servono solo per
un'API su un altro dominio. Il link "Vai al preventivo" usa `frontend_cliente_url` da `GET /api/config`.
## Modello dati