import Database from "better-sqlite3"; import { fileURLToPath } from "url"; import { dirname, join } from "path"; const __dirname = dirname(fileURLToPath(import.meta.url)); const dbPath = join(__dirname, "../localesp.db"); const db = new Database(dbPath); db.exec(` CREATE TABLE IF NOT EXISTS locales ( id TEXT PRIMARY KEY, nombre TEXT NOT NULL, descripcion TEXT, provincia TEXT, subcategoria TEXT, direccion TEXT, enlaceGoogleMaps TEXT, puntuacion INTEGER DEFAULT 0, categoria TEXT, fecha TEXT DEFAULT CURRENT_TIMESTAMP, lat REAL, lng REAL ); CREATE TABLE IF NOT EXISTS pendientes ( id TEXT PRIMARY KEY, nombre TEXT NOT NULL, descripcion TEXT, provincia TEXT, subcategoria TEXT, direccion TEXT, enlaceGoogleMaps TEXT, puntuacion INTEGER DEFAULT 0, categoria TEXT, estado TEXT DEFAULT 'pendiente', fechaPropuesta TEXT DEFAULT CURRENT_TIMESTAMP, lat REAL, lng REAL ); CREATE TABLE IF NOT EXISTS config ( id TEXT PRIMARY KEY, datos TEXT ); CREATE TABLE IF NOT EXISTS users ( id TEXT PRIMARY KEY, email TEXT UNIQUE NOT NULL, password TEXT NOT NULL, created TEXT DEFAULT CURRENT_TIMESTAMP ); `); // Migración suave: si la base de datos ya existía con el esquema antiguo // (sin provincia/subcategoria/direccion/enlaceGoogleMaps/puntuacion), // añadimos las columnas que falten sin borrar nada, porque // CREATE TABLE IF NOT EXISTS no modifica tablas ya creadas. function ensureColumn(table, column, definition) { const cols = db.prepare(`PRAGMA table_info(${table})`).all().map(c => c.name); if (!cols.includes(column)) { db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${definition}`); } } for (const table of ["locales", "pendientes"]) { ensureColumn(table, "provincia", "TEXT"); ensureColumn(table, "subcategoria", "TEXT"); ensureColumn(table, "direccion", "TEXT"); ensureColumn(table, "enlaceGoogleMaps", "TEXT"); ensureColumn(table, "puntuacion", "INTEGER DEFAULT 0"); } export default db;