Skip to content

feat: restore transboundary flag as is_transboundary column on world_heritage_sites / 越境遺産フラグの復活 #581

Description

@zigzagdev

Motivation / 目的

UNESCO's own dataset already flags whether a site is transboundary (spans multiple countries via a serial nomination), but this project currently fetches that value and then silently discards it during import.

UNESCOのデータセット自体が「越境遺産かどうか」を示す真偽値を既に持っていますが、現状はその値を取得しておきながら、インポート処理の途中で捨ててしまっています。

現状の問題 / Current problem

  • DumpUnescoWorldHeritageJson.php::normalizeRow()はUNESCOのAPIレスポンスからtransboundaryという真偽値を取得し、ダンプJSONまでは保持している(DumpUnescoWorldHeritageJson.php:480)。
  • しかし次工程のSplitWorldHeritageJson.php::normalizeSiteRowImportReady()にはtransboundaryキーへの参照が一切無く、ここで値が失われる。
  • 結果、world_heritage_sitesテーブルにも対応するカラムが存在せず、ImportWorldHeritageSiteFromSplitFile.phpにも参照が無く、この情報はDB・API双方から完全に欠落している。

解決策 / Solution

  • SplitWorldHeritageJson.php::normalizeSiteRowImportReady()is_transboundaryの変換を追加する。既存のis_endangered$this->boolFromDanger($row['danger'] ?? null))と全く同じパターンで実装できる。
  • 複数国に分割処理される際のマージ処理mergeSiteRowPreferExisting()にも同様の考慮を追加する。
  • world_heritage_sitesテーブルにis_transboundary(boolean, default false)カラムを追加するマイグレーションを作成する。
  • ImportWorldHeritageSiteFromSplitFile.phpで新カラムを永続化する。
  • WorldHeritageモデルの$fillableに追加する。

Scope / スコープ

  • 今回はDB層(データの復元・永続化)までとする。API/DTO/Algoliaへの露出は対象外(越境遺産フィルタ等、実際に使う機能ができた時点で別Issueとして対応する)。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions