Files
mercadodevida/project/migrations/025_cms_footer_pages.js
2026-08-19 07:17:14 +02:00

97 lines
3.5 KiB
JavaScript

// migration: 025_cms_footer_pages
// Seeds initial CMS pages for footer links if they don't exist yet
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
exports.up = (pgm) => {
// About page
pgm.sql(`
INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
VALUES (
'about',
'Quiénes somos',
'<h2>Nuestra historia</h2><p>MercadoDeVida nació de la convicción de que comer bien no debería ser complicado.</p><h2>Nuestra misión</h2><p>Facilitar el acceso a productos naturales y orgánicos de alta calidad.</p>',
'published',
NOW(),
NOW()
)
ON CONFLICT (slug) DO NOTHING
`);
// Contact page
pgm.sql(`
INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
VALUES (
'contact',
'Contacto',
'<h2>Email</h2><p><a href="mailto:hola@mercadodevida.es">hola@mercadodevida.es</a></p><p>Intentamos responder en 24-48h laborables.</p>',
'published',
NOW(),
NOW()
)
ON CONFLICT (slug) DO NOTHING
`);
// Shipping page
pgm.sql(`
INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
VALUES (
'shipping',
'Envíos y entregas',
'<h2>Zonas de envío</h2><p>España peninsular. Canarias, Ceuta y Melilla: contacta con nosotros.</p><h2>Envío estándar (3-5 días)</h2><p>Coste según peso. Gratis a partir de un umbral.</p><h2>Envío express 24h</h2><p>Disponible para pedidos antes de las 13:00h.</p>',
'published',
NOW(),
NOW()
)
ON CONFLICT (slug) DO NOTHING
`);
// Privacy page
pgm.sql(`
INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
VALUES (
'privacy',
'Política de privacidad',
'<h2>Responsable del tratamiento</h2><p>MercadoDeVida. hola@mercadodevida.es</p><h2>Finalidad</h2><p>Gestión de pedidos, atención al cliente y envío de comunicaciones comerciales.</p><h2>Tus derechos</h2><p>Acceso, rectificación, supresión y portabilidad de tus datos. Contacta: hola@mercadodevida.es</p>',
'published',
NOW(),
NOW()
)
ON CONFLICT (slug) DO NOTHING
`);
// Terms page
pgm.sql(`
INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
VALUES (
'terms',
'Términos y condiciones',
'<h2>Contratación</h2><p>Al realizar un pedido aceptas estos términos. Los precios incluyen IVA.</p><h2>Envíos</h2><p>Ver sección de envíos.</p><h2>Devoluciones</h2><p>Tienes 14 días para devolver productos no perecederos en su estado original.</p>',
'published',
NOW(),
NOW()
)
ON CONFLICT (slug) DO NOTHING
`);
// Cookies page
pgm.sql(`
INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
VALUES (
'cookies',
'Política de cookies',
'<h2>¿Qué son las cookies?</h2><p>Pequños archivos que se almacenan en tu navegador para mejorar tu experiencia.</p><h2>Cookies que usamos</h2><p>Cookies de sesión (carrito, login), cookies analíticas (opcionales) y cookies de preferencias.</p><h2>Tu consentimiento</h2><p>Al navegar aceptas el uso de cookies. Puedes desactivarlas en tu navegador.</p>',
'published',
NOW(),
NOW()
)
ON CONFLICT (slug) DO NOTHING
`);
};
/** @param {import('node-pg-migrate').MigrationBuilder} pgm */
exports.down = (pgm) => {
pgm.sql(
`DELETE FROM cms_pages WHERE slug IN ('about','contact','shipping','privacy','terms','cookies')`,
);
};