chore(2meet-data-optimizer-latepoint-addon): add hpct_latepoint_idx install
Tests / PHP Lint (pull_request) Successful in 7s

- Create hpct_latepoint_idx via dbDelta keyed on a version option, so
  git-pull deploys also get the table (interceptor wrote to it blindly)
- Register the table with TMDO_Custom_Table_Registry; fix indexes key
- Bump version to 0.1.1

Verify: php -l includes/*.php; git status --short clean
PR: PR-001
This commit is contained in:
2026-09-25 20:23:28 +08:00
parent f6b8323e17
commit 8393b213ae
3 changed files with 119 additions and 2 deletions
+29
View File
@@ -13,6 +13,35 @@ Versioning follows [Semantic Versioning](https://semver.org/).
---
## [0.1.1] — 2026-08-08 — 補上從未存在的 `wp_hpct_latepoint_idx` 建表流程
### Fixed
- **`wp_hpct_latepoint_idx` 從未被建立,索引同步全程靜默失敗(嚴重)。** 這張表
在整個 `wp-data-optimizer` / `2meet-data-optimizer` 系譜中**從未有過**
`CREATE TABLE` 定義,但 `TMDO_LatePoint_Interceptor::sync_booking()` 一直對它
做 INSERT/UPDATE,且整段包在 try/catch 內——在乾淨站台上每一次 booking 同步都
會失敗,索引表永遠是空的,而且沒有任何錯誤訊號可循。新增
`TMDO_Latepoint_Bootstrap::maybe_install_table()`,以 `dbDelta()` 建立 12 欄表
(`booking_id` UNIQUE KEY + `agent_id` / `service_id` / `customer_id` 三個 KEY),
並以 `tmdo_latepoint_db_version` option 追蹤版本。刻意**不**只掛
`register_activation_hook()`:本外掛多以 git pull 部署、不會經過停用/啟用循環,
唯有版本 option 才能確保既有安裝也補建到表。
- `TMDO_Custom_Table_Registry::register()` 的索引期望值 config key 由
`expected_indexes` 更正為 `indexes`。該 API 以 `wp_parse_args()` 併入預設值,
未知 key 會被**靜默丟棄**——先前索引期望值等同從未送達 registry,
`wp wpdo doctor` 的 schema drift 只驗欄位、不驗索引。此問題橫跨全部 8 個 AddOn,
已一併更正。
### Added
- `TMDO_Latepoint_Bootstrap::register_custom_tables()`:把 `hpct_latepoint_idx`
註冊進 `TMDO_Custom_Table_Registry`(12 欄 `expected_columns` + 4 個 `indexes`),
讓 `wp wpdo doctor` / `benchmark` / `cleanup` 能治理此表。此前這張表對 TMDO
治理工具完全不可見。
---
## [0.1.0] — TBD
### Added (initial release, scaffold)