import sqlite3 from 'sqlite3'
import { open } from 'sqlite'

let db;

const sql = `CREATE TABLE IF NOT EXISTS auth (username TEXT, password TEXT);
CREATE TABLE IF NOT EXISTS token (username TEXT, token TEXT);
CREATE TABLE IF NOT EXISTS feeder (parentType TEXT, parentId TEXT, childType text, childId TEXT, sortId REAL);
CREATE TABLE IF NOT EXISTS comment (username TEXT, date REAL, content TEXT, id TEXT);
CREATE TABLE IF NOT EXISTS messages (username TEXT, date REAL, content TEXT, link TEXT, status TEXT)`

async function initDb() {
    if (db) return db;

    db = await open({
        filename: `${process.cwd()}/db/main.db`,
        driver: sqlite3.Database
    });

    let sqlCmds = sql.split('\n');

    for (let cmd of sqlCmds) {
        await db.run(cmd);
    }

    return db;
}

export { initDb };