i-darrshan's picture
update
051fc03
raw
history blame
3.67 kB
//SQLite
const sqlite3 = require('sqlite3').verbose();
const {runQuery, runSelectQuery} = require("./queries");
// Initialize the database by creating tables if they don't exist
async function initializeDatabase() {
try {
// Define the queries for table creation
const tables = {
subscribers: `CREATE TABLE IF NOT EXISTS subscribers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
time TEXT,
email TEXT NOT NULL UNIQUE,
consent INTEGER NOT NULL,
policyVersion INTEGER NOT NULL
)`,
applicants: `CREATE TABLE IF NOT EXISTS applicants (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
time TEXT,
name TEXT NOT NULL,
email TEXT NOT NULL,
phone TEXT,
role TEXT,
experience TEXT,
linkedin TEXT,
resume BLOB,
filename TEXT NOT NULL,
consent INTEGER NOT NULL,
policyVersion INTEGER NOT NULL
)`,
demo_requests: `CREATE TABLE IF NOT EXISTS demo_requests (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
time TEXT,
name TEXT NOT NULL,
email TEXT NOT NULL,
company TEXT,
product TEXT,
demo_date TEXT,
slot TEXT,
phone TEXT,
comments TEXT,
consent INTEGER NOT NULL,
policyVersion INTEGER NOT NULL
)`,
contact_requests: `CREATE TABLE IF NOT EXISTS contact_requests (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT,
time TEXT,
name TEXT NOT NULL,
email TEXT NOT NULL,
phone TEXT,
subject TEXT,
message TEXT,
consent INTEGER NOT NULL,
policyVersion INTEGER NOT NULL
)`,
purchases: `CREATE TABLE IF NOT EXISTS purchases (
id INTEGER PRIMARY KEY AUTOINCREMENT,
purchase_date TEXT,
time TEXT,
name TEXT NOT NULL,
email TEXT NOT NULL,
phone TEXT,
product TEXT,
subscription_plan TEXT,
subscription_type TEXT,
consent INTEGER NOT NULL,
policyVersion INTEGER NOT NULL
)`,
jobs: `CREATE TABLE IF NOT EXISTS jobs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
description TEXT NOT NULL,
status TEXT CHECK(status IN ('Open', 'Closed')) NOT NULL DEFAULT 'Open',
vacancies INTEGER NOT NULL DEFAULT 0,
job_type TEXT CHECK(job_type IN ('Full-Time', 'Part-Time', 'Contract')) NOT NULL,
location TEXT CHECK(location IN ('On-Site', 'Remote', 'Hybrid')) NOT NULL,
date_posted TEXT NOT NULL,
deadline TEXT,
image_url TEXT
)`
};
// Iterate through each table and create it if necessary
for (const [table, query] of Object.entries(tables)) {
await runQuery(query);
console.log(`Table '${table}' is checked/created successfully.`);
}
} catch (err) {
console.error('Database connection error:', err);
}
}
module.exports = {initializeDatabase}