# v1.5.7 操作性ホットフィックス API差分 既存164契約は削除・改名していません。職長PWAの現場編集・論理削除を2契約追加し、合計166契約です。D1 migrationは不要で、既存の `sites.version`、`status`、`hidden_at`、`hidden_by`、`hidden_reason` を再利用します。 ## PATCH `/api/worker/sites/:id` - 用途: 職長による現場名、住所、位置、打刻許容半径の編集 - 認証: 作業員Bearer必須。未認証401、一般作業員403 `FOREMAN_REQUIRED` - Request: `{ version, name, address, lat, lng, radius }` - Response: `200 { ok: true, site }` - Validation: ID、必須文字列、緯度経度、50〜1000mかつ50m単位の半径、非負整数version - 409: `SITE_VERSION_CONFLICT`。他利用者が先に編集した場合 - 監査: 操作者、変更前、変更後を `audit_log` に保存 - Worker実装: `cloudflare-app/src/worker-api.js` - 呼出元: `cloudflare-app/public/app.js` の職長「現場管理」 ## DELETE `/api/worker/sites/:id` - 用途: 職長による現場一覧からの論理削除 - 認証: 作業員Bearer必須。未認証401、一般作業員403 `FOREMAN_REQUIRED` - Request: `{ version, reason? }` - Response: `200 { ok: true, id, status: "hidden", historical_records_preserved: true }` - 動作: `sites.status` を `hidden` に変更し、過去の `records`、日報、集計は削除しない - 409: 勤務中セッションがある場合は `SITE_HIDE_BLOCKED`、同時更新時は `SITE_VERSION_CONFLICT` - 監査: 操作者、理由、論理削除、履歴保持を `audit_log` に保存 - Worker実装: `cloudflare-app/src/worker-api.js` - 呼出元: `cloudflare-app/public/app.js` の職長「現場管理」 ## 打刻修正時刻の後方互換 既存POST `/api/worker/corrections` とPOST `/api/worker/corrections/:id/resubmit` の契約数・ルートは変更していません。画面は `type="time"` を使用し、Workerは `17:00` に加えて旧画面等から届く `1700`、`900`、全角コロンをそれぞれ `17:00`、`09:00`、半角コロンへ正規化して保存します。不正な時刻は従来どおり400です。 ## 既存GETレスポンスの後方互換拡張 - GET `/api/worker/bootstrap`: 各 `sites[]` に既存DBの `address` を追加し、ホームの選択現場に住所を表示する。既存キーは変更・削除しない。 - GET `/api/worker/sites`: 職長の同時編集検出に使う `version` と `updated_at` を返す。既存キーは変更・削除しない。