## ADDED Requirements ### Requirement: IoT Card Estimated Final Expiry Display The IoT card management list integration SHALL preserve and display the backend asset-level estimated final package expiry fields without calculating package continuation dates in the frontend. #### Scenario: Display exact card final expiry estimate - **GIVEN** 卡列表接口返回 `expiry_estimate_status=exact` and `estimated_final_expires_at` - **WHEN** 页面渲染卡列表行 - **THEN** 页面 MUST display a column labeled `预计套餐到期时间` - **AND** 该列 MUST format and display `estimated_final_expires_at` #### Scenario: Display activation-pending card final expiry - **GIVEN** 卡列表接口返回待激活等不可预计的 `expiry_estimate_status` - **WHEN** 页面渲染卡列表行 - **THEN** `预计套餐到期时间` MUST display `待激活后起算` - **AND** 页面 MUST NOT calculate or display a fabricated date #### Scenario: Highlight expiring card without reordering - **GIVEN** 卡列表接口返回 `is_expiring=true` and `days_until_final_expiry` - **WHEN** 页面渲染该卡的预计套餐到期时间 - **THEN** 页面 MUST apply the expiring visual treatment based on the backend fields - **AND** 页面 MUST NOT change the ordinary card list sort order because of `is_expiring` #### Scenario: Display no-package card placeholder - **GIVEN** 卡列表记录没有可预计的最终到期时间 - **WHEN** 页面渲染预计套餐到期时间列 - **THEN** 页面 MUST display a stable placeholder - **AND** 页面 MUST NOT use an individual package expiry as a substitute