58 lines
2.8 KiB
JavaScript
58 lines
2.8 KiB
JavaScript
// migration: 025_cms_footer_pages
|
|
// Seeds initial CMS pages for footer links if they don't exist yet
|
|
|
|
/** @param {import('pg').Pool} pool */
|
|
exports.up = async (pool) => {
|
|
const pages = [
|
|
{
|
|
slug: 'about',
|
|
title: 'Quiénes somos',
|
|
body: '<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>',
|
|
status: 'published',
|
|
},
|
|
{
|
|
slug: 'contact',
|
|
title: 'Contacto',
|
|
body: '<h2>Email</h2><p><a href="mailto:hola@mercadodevida.es">hola@mercadodevida.es</a></p><p>Intentamos responder en 24-48h laborables.</p>',
|
|
status: 'published',
|
|
},
|
|
{
|
|
slug: 'shipping',
|
|
title: 'Envíos y entregas',
|
|
body: '<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>',
|
|
status: 'published',
|
|
},
|
|
{
|
|
slug: 'privacy',
|
|
title: 'Política de privacidad',
|
|
body: '<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>',
|
|
status: 'published',
|
|
},
|
|
{
|
|
slug: 'terms',
|
|
title: 'Términos y condiciones',
|
|
body: '<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>',
|
|
status: 'published',
|
|
},
|
|
{
|
|
slug: 'cookies',
|
|
title: 'Política de cookies',
|
|
body: '<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>',
|
|
status: 'published',
|
|
},
|
|
];
|
|
|
|
for (const p of pages) {
|
|
await pool.query(
|
|
`INSERT INTO cms_pages (slug, title, body, status, created_at, updated_at)
|
|
VALUES ($1, $2, $3, $4, NOW(), NOW())
|
|
ON CONFLICT (slug) DO NOTHING`,
|
|
[p.slug, p.title, p.body, p.status],
|
|
);
|
|
}
|
|
};
|
|
|
|
exports.down = async (pool) => {
|
|
await pool.query(`DELETE FROM cms_pages WHERE slug IN ('about','contact','shipping','privacy','terms','cookies')`);
|
|
};
|