← back to Filemaker Mcp

scripts/fix-dwtt73434-mfr.mjs

48 lines

// One-off: fix wrong mfr pattern on WALLPAPER recordId 536611 (DWTT73434, Baxter Aqua and Taupe).
// "Mfr Pattern" was "AT79129" (that code belongs to 73436 Silver); correct = "AT79126"
// per dw_unified.thibaut_catalog. Also fills "mfr pattern number" (was empty).
// Usage: node scripts/fix-dwtt73434-mfr.mjs [--commit]   (default = dry-run diff)

import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, join } from 'node:path';

const __dir = dirname(fileURLToPath(import.meta.url));
for (const line of readFileSync(join(__dir, '..', '.env'), 'utf8').split('\n')) {
  const m = line.match(/^([A-Z_]+)=(.*)$/);
  if (m && !process.env[m[1]]) process.env[m[1]] = m[2];
}

const { getRecord, updateRecord } = await import('../src/fm-client.js');

const DB = 'WALLPAPER';
const LAYOUT = '*List Wallpapers - Shopify Detail Database';
const RECORD_ID = '536611';
const commit = process.argv.includes('--commit');

// sanity guard: make sure we're editing the record we think we are
const rec = await getRecord(DB, LAYOUT, RECORD_ID);
if (rec.fieldData['combo sku'] !== 'DWTT73434') {
  console.error(`ABORT: record ${RECORD_ID} combo sku is ${rec.fieldData['combo sku']}, expected DWTT73434`);
  process.exit(2);
}
console.log('BEFORE:', JSON.stringify({
  'combo sku': rec.fieldData['combo sku'],
  'Mfr Pattern': rec.fieldData['Mfr Pattern'],
  'mfr pattern number': rec.fieldData['mfr pattern number'],
}, null, 1));

const res = await updateRecord(DB, LAYOUT, RECORD_ID, {
  'Mfr Pattern': 'AT79126',
  'mfr pattern number': 'AT79126',
}, { dryRun: !commit });
console.log(commit ? 'COMMITTED:' : 'DRY RUN DIFF:', JSON.stringify(res, null, 1));

if (commit) {
  const after = await getRecord(DB, LAYOUT, RECORD_ID);
  console.log('VERIFY:', JSON.stringify({
    'Mfr Pattern': after.fieldData['Mfr Pattern'],
    'mfr pattern number': after.fieldData['mfr pattern number'],
  }, null, 1));
}