Files
ofertaweb.cl/backend/scripts/create_sample_product.sql
cesar 2a88b4a71b Initial commit: Estructura backend y frontend con estándar VPS
- Backend migrado a estructura VPS (src/ subfolder)
- Frontend con estructura Vite + React 19 + Tailwind
- Configuración PostgreSQL con Pool
- API service con interceptores JWT
- Ambos servidores funcionando (backend:3001, frontend:5173)
2025-12-09 00:35:46 -03:00

76 lines
1.7 KiB
SQL

-- Agregar campo codigo si no existe
ALTER TABLE categories
ADD COLUMN IF NOT EXISTS codigo VARCHAR(10);
-- Crear categoría de ejemplo si no existe
INSERT INTO categories (nombre, slug, descripcion, codigo, orden)
VALUES ('Electrónica', 'electronica', 'Productos electrónicos y tecnología', 'ELEC', 1)
ON CONFLICT (slug) DO NOTHING;
-- Obtener el ID de la categoría
DO $$
DECLARE
cat_id INTEGER;
prod_id INTEGER;
BEGIN
-- Buscar categoría
SELECT id INTO cat_id FROM categories WHERE slug = 'electronica';
-- Crear producto de ejemplo
INSERT INTO products (
sku,
nombre,
descripcion,
category_id,
precio_base,
peso_gramos,
alto_cm,
ancho_cm,
largo_cm,
is_active
)
VALUES (
'ELEC-001',
'Mouse Inalámbrico Logitech M185',
'Mouse inalámbrico con sensor óptico de alta precisión, batería de larga duración (hasta 12 meses), receptor nano USB. Color negro.',
cat_id,
12990,
85,
3.8,
6.2,
10.5,
true
)
ON CONFLICT (sku) DO UPDATE
SET nombre = EXCLUDED.nombre,
descripcion = EXCLUDED.descripcion,
precio_base = EXCLUDED.precio_base
RETURNING id INTO prod_id;
-- Crear inventario inicial
INSERT INTO inventory (product_id, stock_actual, stock_minimo)
VALUES (prod_id, 25, 5)
ON CONFLICT (product_id) DO UPDATE
SET stock_actual = 25;
-- Registrar movimiento de inventario
INSERT INTO inventory_movements (
product_id,
tipo,
cantidad,
cantidad_anterior,
cantidad_nueva,
notas
)
VALUES (
prod_id,
'entrada',
25,
0,
25,
'Stock inicial de ejemplo'
);
RAISE NOTICE 'Producto creado exitosamente: ELEC-001 con 25 unidades en stock';
END $$;