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
24 lines
840 B
C#
24 lines
840 B
C#
using AssetManager.Data;
|
|
using AssetManager.Models.DTOs;
|
|
|
|
namespace AssetManager.Data.Repositories;
|
|
|
|
/// <summary>
|
|
/// 市场数据仓储接口
|
|
/// </summary>
|
|
public interface IMarketDataRepository
|
|
{
|
|
// ===== 价格缓存 =====
|
|
Task<MarketPriceCache?> GetPriceCacheAsync(string symbol, string assetType);
|
|
Task<bool> SavePriceCacheAsync(MarketPriceCache cache);
|
|
|
|
// ===== K线缓存 =====
|
|
Task<List<MarketKlineCache>> GetKlineCacheAsync(string symbol, string assetType, string timeframe, int limit);
|
|
Task<bool> SaveKlineCacheBatchAsync(List<MarketKlineCache> cacheList);
|
|
|
|
// ===== Tiingo Ticker =====
|
|
Task<TiingoTicker?> GetTiingoTickerAsync(string symbol);
|
|
Task<bool> SaveTiingoTickerAsync(TiingoTicker ticker);
|
|
Task<List<TiingoTicker>> SearchTiingoTickersAsync(string keyword, int limit);
|
|
}
|