Implement phase 1 completion and phase 2 dynamic QR
This commit is contained in:
@ -20,7 +20,35 @@ async function main() {
|
||||
try {
|
||||
await client.query("BEGIN");
|
||||
|
||||
const txResult = await client.query("DELETE FROM transactions WHERE partner_reference LIKE 'PR-%' RETURNING id");
|
||||
const auditTable = await client.query("SELECT to_regclass('public.audit_logs') AS name");
|
||||
const idsResult = await client.query(`
|
||||
SELECT id FROM transactions WHERE partner_reference LIKE 'PR-%' OR partner_reference LIKE 'DYN-%'
|
||||
UNION
|
||||
SELECT id FROM devices WHERE device_code LIKE 'DEV-%'
|
||||
UNION
|
||||
SELECT id FROM merchants WHERE legal_name LIKE 'Smoke Merchant %'
|
||||
UNION
|
||||
SELECT outlets.id
|
||||
FROM outlets
|
||||
JOIN merchants ON merchants.id = outlets.merchant_id
|
||||
WHERE merchants.legal_name LIKE 'Smoke Merchant %'
|
||||
UNION
|
||||
SELECT terminals.id
|
||||
FROM terminals
|
||||
JOIN outlets ON outlets.id = terminals.outlet_id
|
||||
JOIN merchants ON merchants.id = outlets.merchant_id
|
||||
WHERE merchants.legal_name LIKE 'Smoke Merchant %'
|
||||
UNION
|
||||
SELECT device_bindings.id
|
||||
FROM device_bindings
|
||||
JOIN devices ON devices.id = device_bindings.device_id
|
||||
WHERE devices.device_code LIKE 'DEV-%'
|
||||
`);
|
||||
const auditIds = idsResult.rows.map((row) => row.id);
|
||||
const auditResult = auditTable.rows[0]?.name && auditIds.length
|
||||
? await client.query("DELETE FROM audit_logs WHERE entity_id = ANY($1::text[])", [auditIds])
|
||||
: { rowCount: 0 };
|
||||
const txResult = await client.query("DELETE FROM transactions WHERE partner_reference LIKE 'PR-%' OR partner_reference LIKE 'DYN-%' RETURNING id");
|
||||
const devResult = await client.query("DELETE FROM devices WHERE device_code LIKE 'DEV-%' RETURNING id");
|
||||
const merchantResult = await client.query("DELETE FROM merchants WHERE legal_name LIKE 'Smoke Merchant %' RETURNING id");
|
||||
|
||||
@ -30,6 +58,7 @@ async function main() {
|
||||
transactions_deleted: txResult.rowCount,
|
||||
devices_deleted: devResult.rowCount,
|
||||
merchants_deleted: merchantResult.rowCount,
|
||||
audit_logs_deleted: auditResult.rowCount,
|
||||
note: "outlets/terminals are removed via merchant cascade"
|
||||
}));
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user