35 lines
994 B
JavaScript
35 lines
994 B
JavaScript
import Database from "better-sqlite3";
|
|
import path from "node:path";
|
|
import fs from "node:fs";
|
|
|
|
// process.cwd() es /app dentro del contenedor (WORKDIR /app en el Dockerfile),
|
|
// donde Coolify monta el volumen persistente en /app/data.
|
|
function createDb() {
|
|
const dir = path.join(process.cwd(), "data");
|
|
fs.mkdirSync(dir, { recursive: true });
|
|
const db = new Database(path.join(dir, "informe.db"));
|
|
db.pragma("journal_mode = WAL");
|
|
db.exec(`
|
|
CREATE TABLE IF NOT EXISTS metas (
|
|
email TEXT PRIMARY KEY,
|
|
monto REAL NOT NULL,
|
|
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
);
|
|
CREATE TABLE IF NOT EXISTS config (
|
|
clave TEXT PRIMARY KEY,
|
|
valor TEXT NOT NULL
|
|
);
|
|
CREATE TABLE IF NOT EXISTS geo_override (
|
|
opportunity_id TEXT PRIMARY KEY,
|
|
lat REAL,
|
|
lon REAL,
|
|
zona TEXT,
|
|
depto TEXT
|
|
);
|
|
`);
|
|
return db;
|
|
}
|
|
|
|
const g = globalThis;
|
|
const db = g.__informeDb ?? (g.__informeDb = createDb());
|
|
export default db;
|