<?php

$table = new HeraldCondition();
$conn_w = $table->establishConnection('w');

echo pht(
  "Migrating Herald conditions of type Herald rule from IDs to PHIDs...\n");
foreach (new LiskMigrationIterator($table) as $condition) {
  if ($condition->getFieldName() != HeraldAnotherRuleField::FIELDCONST) {
    continue;
  }

  $value = $condition->getValue();
  if (!is_numeric($value)) {
    continue;
  }
  $id = $condition->getID();
  echo pht('Updating condition %s...', $id)."\n";

  $rule = id(new HeraldRuleQuery())
    ->setViewer(PhabricatorUser::getOmnipotentUser())
    ->withIDs(array($value))
    ->executeOne();

  queryfx(
    $conn_w,
    'UPDATE %T SET value = %s WHERE id = %d',
    $table->getTableName(),
    json_encode($rule->getPHID()),
    $id);
}
echo pht('Done.')."\n";