# IoT Card Operations Specification ## ADDED Requirements ### Requirement: Query IoT Card Flow Usage The system SHALL provide the ability to query real-time flow usage for an IoT card via its ICCID. #### Scenario: Successfully query flow usage - **WHEN** an authenticated user requests flow usage for a valid ICCID - **THEN** the system returns flow usage data including used flow amount and unit #### Scenario: Query with invalid ICCID - **WHEN** a user requests flow usage for an invalid or non-existent ICCID - **THEN** the system returns a 400 error with appropriate error message ### Requirement: Query IoT Card Realname Status The system SHALL provide the ability to query the realname authentication status for an IoT card via its ICCID. #### Scenario: Successfully query realname status - **WHEN** an authenticated user requests realname status for a valid ICCID - **THEN** the system returns the current realname authentication status #### Scenario: Query status for unauthenticated user - **WHEN** an unauthenticated user attempts to query realname status - **THEN** the system returns a 401 unauthorized error ### Requirement: Query IoT Card Real-time Status The system SHALL provide the ability to query the real-time operational status of an IoT card via its ICCID. #### Scenario: Successfully query card status - **WHEN** an authenticated user requests card status for a valid ICCID - **THEN** the system returns card status information including ICCID and current status (准备/正常/停机) #### Scenario: Query with unauthorized access - **WHEN** a user without proper permissions attempts to query card status - **THEN** the system returns a 403 forbidden error ### Requirement: Get IoT Card Realname Link The system SHALL provide the ability to generate and retrieve a realname authentication link for an IoT card. #### Scenario: Successfully retrieve realname link - **WHEN** an authenticated user requests the realname link for a valid ICCID - **THEN** the system returns an HTTPS URL that can be used for realname authentication #### Scenario: Display realname link as QR code - **WHEN** the system returns a realname authentication link - **THEN** the UI displays the link as a QR code for easy mobile scanning ### Requirement: Start IoT Card (复机) The system SHALL provide the ability to start (restore service) an IoT card via its ICCID. #### Scenario: Successfully start a stopped card - **WHEN** an authenticated user initiates a start operation on a stopped card - **THEN** the system processes the request and restores card service - **AND** displays a success message to the user #### Scenario: Start operation with confirmation - **WHEN** a user clicks the start card button - **THEN** the system prompts for confirmation before executing the operation - **AND** only proceeds if the user confirms the action #### Scenario: Insufficient permissions for start operation - **WHEN** a user without proper permissions attempts to start a card - **THEN** the system returns a 403 forbidden error ### Requirement: Stop IoT Card (停机) The system SHALL provide the ability to stop (suspend service) an IoT card via its ICCID. #### Scenario: Successfully stop an active card - **WHEN** an authenticated user initiates a stop operation on an active card - **THEN** the system processes the request and suspends card service - **AND** displays a success message to the user #### Scenario: Stop operation with confirmation - **WHEN** a user clicks the stop card button - **THEN** the system prompts for confirmation before executing the operation - **AND** only proceeds if the user confirms the action #### Scenario: Server error during stop operation - **WHEN** a server error occurs during the stop operation - **THEN** the system returns a 500 error with error details - **AND** displays an appropriate error message to the user ### Requirement: IoT Card Management UI Integration The system SHALL integrate IoT card operations into the card management page at `/asset-management/iot-card-management`. #### Scenario: Display primary operation button - **WHEN** a user views the IoT card management page - **THEN** the system displays a "查询流量使用" (Query Flow Usage) button as the primary operation #### Scenario: Display dropdown menu for additional operations - **WHEN** a user views the IoT card management page - **THEN** the system displays a "更多操作" (More Operations) dropdown menu - **AND** the dropdown contains: 查询实名状态, 查询卡状态, 获取实名链接, 启用卡片, 停用卡片 #### Scenario: Show operation results in dialog - **WHEN** a user executes a query operation (flow, realname status, or card status) - **THEN** the system displays results in a modal dialog with properly formatted data ### Requirement: Authentication and Authorization The system SHALL enforce JWT-based authentication for all IoT card operations. #### Scenario: Access with valid JWT token - **WHEN** a user makes a request with a valid Bearer token - **THEN** the system processes the request normally #### Scenario: Access with expired token - **WHEN** a user makes a request with an expired JWT token - **THEN** the system returns a 401 unauthorized error ### Requirement: Error Handling The system SHALL provide clear error messages for all failure scenarios. #### Scenario: Handle 400 parameter errors - **WHEN** a request contains invalid parameters - **THEN** the system returns a 400 error with specific validation failure details #### Scenario: Handle 500 server errors - **WHEN** an internal server error occurs - **THEN** the system returns a 500 error with error timestamp - **AND** logs the error for debugging purposes