## Context

The feature exposes high-impact package usage adjustments from the asset information package list. Because it can change real package consumption and expiration, the UI gate must combine deployment environment, account type, and production button permissions.

## Goals / Non-Goals

- Goals: Add two package-list operations, call the documented PATCH APIs, validate operator input, and refresh page data after success.
- Goals: Keep production access limited to platform users (`user_type=2`) with explicit button permissions.
- Goals: Keep test/development access limited to super admins (`user_type=1`) without requiring button permissions.
- Non-Goals: Add backend endpoints, change package list data retrieval, or change existing refund/package display behavior.

## Decisions

- Decision: Treat non-production as `import.meta.env.DEV` or a project-defined test mode discovered during implementation; production behavior MUST be used for production builds.
- Decision: Use separate permission codes for the two production-only buttons so operators can be granted one action without the other.
- Decision: Prefer small modal forms from the package list component unless an existing asset-operation dialog pattern provides a clearer reuse point.
- Decision: Send `data_usage_mb` as a non-negative integer MB value and `expires_at` as the selected formatted datetime string.

## Risks / Trade-offs

- Permission code names are not specified in the request. Implementation MUST confirm or define final codes before wiring production checks.
- Environment naming can vary by deployment. Implementation MUST inspect existing env conventions and avoid making test-only access available in production mode.
- Adjusting real used data can make displayed virtual/remaining values stale if the list is not refreshed. The UI MUST refresh after success.

## Open Questions

- What are the final production permission codes for “修改已用量” and “修改过期时间”?
- Which env flag identifies the requested “测试环境” if it is not `import.meta.env.DEV`?
