3C Application contract 決策確認紀錄
本文件記錄使用者對 3C Application Service contract 草案 / 實作前確認表 的七項決策確認結果。
0. 確認狀態
| 項目 | 內容 |
| 文件狀態 | 已確認 |
| 確認日期 | 2026-06-04 |
| 對應階段 | 第三階段 3C Service / API |
| 使用者回覆 | 3C Application contract 確認:1. 同意 ... 7. 同意 |
| 本次確認範圍 | Application 專案、引用方向、Task Control、Device Status、Schema Preview、Health 與停止線 |
| 本次仍不做 | 不建立 ServiceHost / WebApi、不新增 route、不導入套件、不執行 DB 寫入、DDL 或正式 Apply |
1. 使用者確認內容
3C Application contract 確認:
1. 同意
2. 同意
3. 同意
4. 同意
5. 同意
6. 同意
7. 同意
2. 七項決策定案
| 編號 | 決策項 | 定案結果 | 實作影響 |
| 1 | 新增 Application 專案 | 同意新增 HS.DeviceControl.Application 與 HS.DeviceControl.Application.Tests | 可建立 ServiceHost / WebApi 未來共用的 Application contract 層。 |
| 2 | 引用方向 | 同意 Application 只引用 Core / Adapters | Application 不直接依賴 ConsoleHost、Infrastructure.MySql、WebApi 或 ServiceHost。 |
| 3 | 第一版範圍 | 同意第一版只做 contract / DTO / 最小測試 | 不在本批建立 WebApi、ServiceHost 或正式背景服務。 |
| 4 | Task Control 模式 | 同意 Start 回傳 TaskId、GetStatus 查狀態、Cancel 提出取消請求 | 保留未來 queue / background worker 空間,不讓 API 長時間阻塞。 |
| 5 | Device Status 邊界 | 同意第一版只讀設備狀態,不下控制命令 | 不讓狀態查詢繞過 Task / Adapter 邊界直接控制硬體。 |
| 6 | Schema Preview 邊界 | 同意只包裝 ManualApplyPreview,不 Apply、不 DDL | 可提供管理檢查,但不得修改 DB。 |
| 7 | 停止線 | 同意不新增 route、不導入套件、不改啟動方式、不保存 secret | 保持本批為最小 Application contract 起點。 |
3. 實作前仍需遵守
- 不新增
ServiceHost專案。 - 不新增
WebApi專案。 - 不新增 API route、controller、endpoint 或 middleware。
- 不新增或更換認證授權、佇列、背景服務、Web framework 套件。
- 不修改既有 Core / Adapter / Infrastructure public method 簽章。
- 不執行 DB 寫入、DDL、ALTER TABLE 或正式 Apply。
- 不保存密碼、Token、完整 connection string 或正式環境資訊。
- 不改程式啟動方式。
- 不導入外部 DLL、Plugin Loader 或真實硬體控制。
4. 建議下一步
可進入「3C Application Service contract 第一版實作」。第一版建議限制在程式 repo 新增 HS.DeviceControl.Application、HS.DeviceControl.Application.Tests、contract / DTO、最小測試與實作紀錄;仍不建立 ServiceHost / WebApi。