Servizi: Pilates Flow -> Profilazione, Rehab -> Osteopatia
- services.ts: nuovi servizi profilazione (copy bozza dal metodo ISL) e osteopatia (copy dal documento cliente); rehab esce da Servizi (va in Training). - Redirect 301 dai vecchi slug: pilates-flow -> profilazione, rehab -> training. - Footer, icone, sitemap e meta aggiornati; migrazione DB idempotente per le label footer e la meta description (contenuti live in SQLite). - Immagine osteopatia riusa la foto rehab (come da mockup cliente). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017rUFjLYZ1TZ7DgxwTR5q9K
This commit is contained in:
@@ -114,6 +114,22 @@ export function createDb(path?: string): Database.Database {
|
||||
const ins = db.prepare('INSERT OR IGNORE INTO content_blocks (tag, type, value, guid) VALUES (?, ?, ?, ?)');
|
||||
const syncTx = db.transaction(() => { for (const e of contentSeed) ins.run(e.tag, e.type, e.value, randomUUID()); });
|
||||
syncTx();
|
||||
|
||||
// Modifiche 02 (pagina Servizi): "Pilates Flow" → "Profilazione" e "Rehab" → "Osteopatia".
|
||||
// I nuovi servizi hanno slug nuovi (tag service.profilazione.* / service.osteopatia.*) e
|
||||
// vengono inseriti dal seed qui sopra. Restano da aggiornare le righe EXISTING il cui valore
|
||||
// cambia: label del footer e meta description. UPDATE guardato dal vecchio valore → idempotente
|
||||
// e non sovrascrive eventuali modifiche fatte dal pannello.
|
||||
const SERVIZI_02: [string, string, string][] = [
|
||||
['footer.services.4.label', 'Rehab', 'Profilazione'],
|
||||
['footer.services.5.label', 'Pilates Flow', 'Osteopatia'],
|
||||
['services.meta.description',
|
||||
'I servizi InsanityLab: Personal Training, Performance Class, Coaching, Pilates Flow, Rehab e Nutrizione.',
|
||||
'I servizi InsanityLab: Personal Training, Performance Class, Coaching, Profilazione, Osteopatia e Nutrizione.'],
|
||||
];
|
||||
const upd02 = db.prepare('UPDATE content_blocks SET value = ? WHERE tag = ? AND value = ?');
|
||||
const upd02Tx = db.transaction(() => { for (const [tag, oldV, newV] of SERVIZI_02) upd02.run(newV, tag, oldV); });
|
||||
upd02Tx();
|
||||
// Backfill: righe pre-esistenti (già presenti prima dell'introduzione del guid) restano
|
||||
// ignorate dall'INSERT OR IGNORE e hanno guid nullo → assegna un UUID a ciascuna.
|
||||
const missing = db.prepare(`SELECT tag FROM content_blocks WHERE guid IS NULL OR guid = ''`).all() as { tag: string }[];
|
||||
|
||||
Reference in New Issue
Block a user