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
19 lines
1.1 KiB
C#
Executable File
19 lines
1.1 KiB
C#
Executable File
using AssetManager.Models.DTOs;
|
|
|
|
namespace AssetManager.Services;
|
|
|
|
public interface IPortfolioService
|
|
{
|
|
CreatePortfolioResponse CreatePortfolio(CreatePortfolioRequest request, string userId);
|
|
Task<CreatePortfolioResponse> CreatePortfolioAsync(CreatePortfolioRequest request, string userId);
|
|
List<PortfolioListItem> GetPortfolios(string userId);
|
|
Task<List<PortfolioListItem>> GetPortfolioListAsync(string userId);
|
|
TotalAssetsResponse GetTotalAssets(string userId);
|
|
Task<TotalAssetsResponse> GetTotalAssetsAsync(string userId);
|
|
PortfolioDetailResponse GetPortfolioById(string id, string userId);
|
|
Task<PortfolioDetailResponse> GetPortfolioDetailAsync(string portfolioId, string userId);
|
|
GetTransactionsResponse GetTransactions(string portfolioId, string userId, int limit, int offset);
|
|
Task<List<TransactionItem>> GetTransactionsAsync(string portfolioId, GetTransactionsRequest request, string userId);
|
|
Task<TransactionItem> CreateTransactionAsync(string portfolioId, CreateTransactionRequest request, string userId);
|
|
Task<bool> DeletePortfolioAsync(string portfolioId, string userId);
|
|
} |