import JSONdb from 'simple-json-db';
import { StorageInterface } from "./StorageInterface";
import * as fs from 'fs';
import * as path from 'path';

const dbPath = path.resolve(__dirname, '../../data/db.json');
const dbDir = path.dirname(dbPath);

// Zajistěte, že adresář existuje
if (!fs.existsSync(dbDir)) {
    fs.mkdirSync(dbDir, { recursive: true });
}

const db = new JSONdb(dbPath);
/**
 * Implementace úložiště používající JSON soubor.
 */
export default class JsonStorage implements StorageInterface {

    hasData(key: string): Promise<boolean> {
        return Promise.resolve(db.has(key));
    }

    getData<Type>(key: string): Promise<Type> {
        return db.get(key);
    }

    setData<Type>(key: string, data: Type): Promise<void> {
        db.set(key, data);
        return Promise.resolve();
    }
}