1. 创建交易: POST /api/v1/portfolio/{id}/transactions -> POST /api/v1/portfolio/transactions - portfolioId 改为在 body 中传递 2. 新增计算净值端点: POST /api/v1/portfolio/{id}/nav-history/calculate 前端 API 格式已完全对齐
- IPortfolioFacade 添加 GetTotalAssetsAsync 方法 - PortfolioFacade 实现 GetTotalAssetsAsync - PortfolioController 添加 [HttpGet("assets")] 端点(放在 {id} 路由之前)
P0 - 安全修复: - 移除硬编码 API Key,启动时校验必填环境变量 P1 - 高优先级: - Entity 拆分:Position.cs, Transaction.cs 独立文件 - Controller Facade 封装:IPortfolioFacade 减少依赖注入 P2 - 中优先级: - Repository 抽象:IPortfolioRepository, IMarketDataRepository - MarketDataService 拆分:组合模式整合 Tencent/Tiingo/OKX P3 - 低优先级: - DTO 命名规范:统一 PascalCase - 单元测试框架:xUnit + Moq + FluentAssertions