1'use strict';23// Durable cutover projection for the site locale entity. Rows are rebuilt from the source,4// setup receipt, user actions and execution manifest; prose never clears an action.56const fs = require('node:fs');7const path = require('node:path');89const core = require('./site-regional.js');10const sr
22 return `Requires Import Operator. Resume migration ${project}/${run} for destination ${siteId} in the original environment. Review site-locale request ${requestId}. The owner's answer arrives as CHOICE: change or CHOICE: keep. If it is missing or different, record nothing. Otherwise answer the durable request, rerun setup, and report every field action and read-back value.`;
27 ? `${supplied}, then re-run ${String(adapter || '').startsWith('quick-') ? 'the quick plan and ' : ''}setup`
28 : `record it as supplied in the adapter source-locale file, promote discovery, then rerun setup`;
29 return `Requires Import Operator. Resume migration ${project}/${run} in the original environment. Re-run source discovery for ${FIELD_NAME[field]}; if the source does not expose it, ask the merchant and ${recovery}. Do not guess. Report the current site/locale receipt.`;
32 return `Requires Import Operator. Resume migration ${project}/${run} for destination ${siteId}. The owner chose change, or the site now matches, for ${fields.join(', ')}. Record the updated locale answer, rerun site/locale, then run catch-up for ${refs.join(', ')}. Report the current receipt and task-ledger completion; do not clear this action while any listed ref remains held.`;
35 return `Requires Import Operator. Resume migration ${project}/${run} for destination ${siteId}. The Cutover Operator confirmed in Business Manager that connected payment methods accept ${currency}. Acknowledge user action ${requestId}, regenerate the completion report, and verify site-locale-payment-methods-unconfirmed is absent. If confirmation is missing, record nothing and leave the action open.`;
36}
37
38function promptTimeZone({ project, run, siteId, requestId, value }) {
39 return `Requires Import Operator. Resume migration ${project}/${run} for destination ${siteId}. The Cutover Operator confirmed the site time zone (${value}, or the zone they set instead). Acknowledge user action ${requestId}, regenerate the completion report, and verify site-locale-time-zone-unconfirmed is absent. If confirmation is missing, record nothing and leave the action open.`;
40}
41
42function userActionFiles(projectDir) {
43 const dir = path.join(projectDir, 'orchestration', 'user-actions');
114 action: `The existing site has an order or product, so changing ${fields.map((field) => FIELD_NAME[field]).join(', ')} needs the owner's one answer. ${promptAnswer({ project, run, siteId, requestId: pendingLocale.requestId })}`,
130 action: `The site/locale receipt is missing, stale or failed. Requires Import Operator. Resume migration ${project}/${run}, rerun setup for ${siteId}, and verify a current passed receipt before resuming imports.`,
152 deadlineReason: 'before launch completeness is accepted',
153 action: `Neutral entities may import, but these refs remain held or await catch-up: ${refs.join(', ')}. ${promptCatchUp({ project, run, siteId, refs, fields: catchUpFields })}`,
175 action: `Cutover Operator: confirm the site time zone ${request.subject.value} in Business Manager > Settings > Language & region (the source store had no named zone; ${request.subject.basis === 'single-zone-country' ? 'picked from the store country' : request.subject.basis === 'unresolved' ? 'none could be picked, so the site kept its own zone' : 'picked from the store country and its fixed offset'}). Change it there if it is wrong. ${promptTimeZone({ project, run, siteId, requestId: request.requestId, value: request.subject.value })}`,