feat(persistance): add migration

This commit is contained in:
2026-01-17 15:01:49 -03:00
parent fd763cc162
commit 230ba670ab

View File

@@ -0,0 +1,56 @@
const chainSql =
'CREATE TABLE IF NOT EXISTS chain ( ' +
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
'image TEXT, ' +
'name TEXT ' +
');';
const establishmentSql =
'CREATE TABLE IF NOT EXISTS establishment ( ' +
'id INTEGER PRIMARY KEY AUTOINCREMENT ,' +
'address TEXT NOT NULL, ' +
'chain_id INTEGER NOT NULL, ' +
'FOREIGN KEY (chain_id) REFERENCES chain(id) ON DELETE CASCADE ' +
');';
const establishmentChainIdxSql =
'CREATE INDEX IF NOT EXISTS idx_establishment_chain_id ON establishment(chain_id);';
const productSql =
'CREATE TABLE IF NOT EXISTS product ( ' +
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
'barcode TEXT NOT NULL UNIQUE, ' +
'name TEXT NOT NULL DEFAULT "", ' +
'image TEXT ' +
');';
const productEstablishmentSql =
'CREATE TABLE IF NOT EXISTS product_establishment ( ' +
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
'product_id INTEGER NOT NULL, ' +
'establishment_id INTEGER NOT NULL, ' +
'FOREIGN KEY (product_id) REFERENCES product(id) ON DELETE CASCADE, ' +
'FOREIGN KEY (establishment_id) REFERENCES establishment(id) ON DELETE CASCADE, ' +
'UNIQUE(product_id, establishment_id) ' +
');';
const purchaseSql =
'CREATE TABLE IF NOT EXISTS purchase ( ' +
'id INTEGER PRIMARY KEY AUTOINCREMENT, ' +
'establishment_id INTEGER NOT NULL, ' +
'product_id INTEGER NOT NULL, ' +
'price INTEGER NOT NULL DEFAULT 0, ' +
'quantity INTEGER NOT NULL DEFAULT 1, ' +
'date INTEGER NOT NULL, ' +
'FOREIGN KEY (establishment_id) REFERENCES establishment(id) ON DELETE CASCADE, ' +
'FOREIGN KEY (product_id) REFERENCES product(id) ON DELETE CASCADE ' +
');';
export const tables: [string, any[]][] = [
[chainSql, []],
[establishmentSql, []],
[establishmentChainIdxSql, []],
[productSql, []],
[productEstablishmentSql, []],
[purchaseSql, []],
];