AssetManager.API/AssetManager.Services/IPortfolioFacade.cs
OpenClaw Agent d4c58c8a08 fix: 添加 /api/v1/portfolio/assets 端点
- IPortfolioFacade 添加 GetTotalAssetsAsync 方法
- PortfolioFacade 实现 GetTotalAssetsAsync
- PortfolioController 添加 [HttpGet("assets")] 端点(放在 {id} 路由之前)
2026-03-15 13:58:22 +00:00

65 lines
2.0 KiB
C#

using AssetManager.Models.DTOs;
namespace AssetManager.Services;
/// <summary>
/// 投资组合门面接口 - 整合多个服务,简化 Controller 调用
/// </summary>
public interface IPortfolioFacade
{
/// <summary>
/// 创建投资组合
/// </summary>
Task<CreatePortfolioResponse> CreatePortfolioAsync(CreatePortfolioRequest request, string userId);
/// <summary>
/// 获取投资组合详情
/// </summary>
Task<PortfolioDetailResponse> GetPortfolioDetailAsync(string portfolioId, string userId);
/// <summary>
/// 获取投资组合列表
/// </summary>
Task<List<PortfolioListItem>> GetPortfolioListAsync(string userId);
/// <summary>
/// 获取净值历史
/// </summary>
Task<NavHistoryResponse> GetNavHistoryAsync(string portfolioId, NavHistoryRequest request, string userId);
/// <summary>
/// 创建交易
/// </summary>
Task<TransactionItem> CreateTransactionAsync(string portfolioId, CreateTransactionRequest request, string userId);
/// <summary>
/// 获取交易列表
/// </summary>
Task<List<TransactionItem>> GetTransactionsAsync(string portfolioId, GetTransactionsRequest request, string userId);
/// <summary>
/// 获取策略信号
/// </summary>
Task<StrategySignalResponse> GetStrategySignalAsync(string portfolioId, string userId);
/// <summary>
/// 删除投资组合
/// </summary>
Task<bool> DeletePortfolioAsync(string portfolioId, string userId);
/// <summary>
/// 创建投资组合(含用户验证和币种校验)
/// </summary>
Task<CreatePortfolioResponse> CreatePortfolioWithValidationAsync(CreatePortfolioRequest request, string userId);
/// <summary>
/// 回填净值历史
/// </summary>
Task<BackfillNavResponse> BackfillNavHistoryAsync(string portfolioId, string userId, bool force = false);
/// <summary>
/// 获取用户总资产
/// </summary>
Task<TotalAssetsResponse> GetTotalAssetsAsync(string userId);
}