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