57 lines
1.8 KiB
TypeScript
57 lines
1.8 KiB
TypeScript
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, []],
|
|
];
|