feat: enhance report migration process with improved proof handling and add migration command for report proofs
This commit is contained in:
parent
7bf5775ad9
commit
382d0862b8
@ -37,6 +37,7 @@ public function handle()
|
|||||||
'migrate:company' => '🏭 Migrating companies & partner media...',
|
'migrate:company' => '🏭 Migrating companies & partner media...',
|
||||||
'migrate:journalist' => '📰 Migrating journalists...',
|
'migrate:journalist' => '📰 Migrating journalists...',
|
||||||
'migrate:media-orders' => '📦 Migrating media orders...',
|
'migrate:media-orders' => '📦 Migrating media orders...',
|
||||||
|
'migrate:reports' => '📋 Migrating report proofs (bukti tayang)...',
|
||||||
'migrate:media-cooperation' => '🤝 Migrating media cooperation...',
|
'migrate:media-cooperation' => '🤝 Migrating media cooperation...',
|
||||||
'migrate:media-monitoring' => '🖥️ Migrating media monitoring...',
|
'migrate:media-monitoring' => '🖥️ Migrating media monitoring...',
|
||||||
'migrate:issue-management' => '⚠️ Migrating issue management...',
|
'migrate:issue-management' => '⚠️ Migrating issue management...',
|
||||||
|
|||||||
@ -381,13 +381,21 @@ private function processReport(object $legacyReport, int $cooperationId, int $ta
|
|||||||
|
|
||||||
[$cleanTitle, $cleanLink] = $this->extractLinkData($legacyReport);
|
[$cleanTitle, $cleanLink] = $this->extractLinkData($legacyReport);
|
||||||
|
|
||||||
$exists = DB::table('reports')
|
$existingReportId = DB::table('reports')
|
||||||
->where('media_task_assignment_id', $mediaTaskAssignment->id)
|
->where('media_task_assignment_id', $mediaTaskAssignment->id)
|
||||||
->where('publication_date', $legacyReport->broadcast)
|
->where('publication_date', $legacyReport->broadcast)
|
||||||
->where('link', $cleanLink)
|
->where('link', $cleanLink)
|
||||||
->exists();
|
->value('id');
|
||||||
|
|
||||||
|
if ($existingReportId) {
|
||||||
|
if (! isset($this->migratedReportIds[$existingReportId])) {
|
||||||
|
$report = Report::find($existingReportId);
|
||||||
|
if ($report) {
|
||||||
|
$this->migrateProof($report, $legacyReport);
|
||||||
|
$this->migratedReportIds[$existingReportId] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ($exists) {
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -404,13 +412,13 @@ private function processReport(object $legacyReport, int $cooperationId, int $ta
|
|||||||
|
|
||||||
$newReportId = (int) DB::getPdo()->lastInsertId();
|
$newReportId = (int) DB::getPdo()->lastInsertId();
|
||||||
|
|
||||||
// // Migrate proof image if not already done
|
if (! isset($this->migratedReportIds[$newReportId])) {
|
||||||
// if (! isset($this->migratedReportIds[$newReportId])) {
|
$report = Report::find($newReportId);
|
||||||
// $report = Report::find($newReportId);
|
if ($report) {
|
||||||
// if ($report) {
|
$this->migrateProof($report, $legacyReport);
|
||||||
// $this->migrateProof($report, $legacyReport);
|
$this->migratedReportIds[$newReportId] = true;
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -143,14 +143,8 @@ private function processReport(object $legacy): void
|
|||||||
->first();
|
->first();
|
||||||
|
|
||||||
if ($existing) {
|
if ($existing) {
|
||||||
if (! isset($this->migratedIds[$existing->id])) {
|
$proofMigrated = $this->migrateProofIfNeeded($existing->id, $legacy);
|
||||||
$report = Report::find($existing->id);
|
$this->output->writeln($proofMigrated ? '<info>SKIP + IMG</info>' : '<info>SKIP</info>');
|
||||||
if ($report) {
|
|
||||||
$this->migrateProof($report, $legacy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->output->writeln('<info>SKIP</info>');
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -168,31 +162,46 @@ private function processReport(object $legacy): void
|
|||||||
|
|
||||||
$newReportId = (int) DB::getPdo()->lastInsertId();
|
$newReportId = (int) DB::getPdo()->lastInsertId();
|
||||||
|
|
||||||
if (! isset($this->migratedIds[$newReportId])) {
|
$proofMigrated = $this->migrateProofIfNeeded($newReportId, $legacy);
|
||||||
$report = Report::find($newReportId);
|
|
||||||
if ($report) {
|
|
||||||
$this->migrateProof($report, $legacy);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$this->output->writeln('<info>DONE</info>');
|
$this->output->writeln($proofMigrated ? '<info>DONE + IMG</info>' : '<info>DONE</info>');
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
$this->output->writeln('<error>FAILED: '.$e->getMessage().'</error>');
|
$this->output->writeln('<error>FAILED: '.$e->getMessage().'</error>');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Migrate the proof image file from S3 to the Report media library.
|
* Register proof media for a report when not yet migrated.
|
||||||
*/
|
*/
|
||||||
private function migrateProof(Report $report, object $legacy): void
|
private function migrateProofIfNeeded(int $reportId, object $legacy): bool
|
||||||
|
{
|
||||||
|
if (isset($this->migratedIds[$reportId])) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$report = Report::find($reportId);
|
||||||
|
if (! $report) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->migrateProof($report, $legacy);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Migrate the proof image metadata (file stays on S3 legacy path).
|
||||||
|
*/
|
||||||
|
private function migrateProof(Report $report, object $legacy): bool
|
||||||
{
|
{
|
||||||
$legacyPath = trim($legacy->proof ?? '');
|
$legacyPath = trim($legacy->proof ?? '');
|
||||||
if (empty($legacyPath) || $legacyPath === '-' || $legacyPath === 'no-image.png') {
|
if (empty($legacyPath) || $legacyPath === '-' || $legacyPath === 'no-image.png') {
|
||||||
return;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sourcePath = 'old-data/reports/'.$legacyPath;
|
$sourcePath = 'old-data/reports/'.$legacyPath;
|
||||||
$this->importProofFile($report, $sourcePath, $legacy);
|
$this->importProofFile($report, $sourcePath, $legacy);
|
||||||
|
$this->migratedIds[$report->id] = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user