using AssetManager.Data; using AssetManager.Models.DTOs; namespace AssetManager.Data.Repositories; /// /// 投资组合仓储接口 /// public interface IPortfolioRepository { // ===== Portfolio ===== Task GetByIdAsync(string id, string userId); Task> GetByUserIdAsync(string userId); Task CreateAsync(Portfolio portfolio); Task UpdateAsync(Portfolio portfolio); Task DeleteAsync(string id, string userId); // ===== Position ===== Task> GetPositionsByPortfolioIdAsync(string portfolioId); Task GetPositionAsync(string portfolioId, string stockCode); Task CreatePositionAsync(Position position); Task UpdatePositionAsync(Position position); Task DeletePositionAsync(string positionId); // ===== Transaction ===== Task> GetTransactionsAsync(string portfolioId, int limit, int offset); Task GetTransactionCountAsync(string portfolioId); Task CreateTransactionAsync(Transaction transaction); // ===== NavHistory ===== Task> GetNavHistoryAsync(string portfolioId, DateTime? startDate, DateTime? endDate); Task DeleteNavHistoryAfterDateAsync(string portfolioId, DateTime date); Task CreateNavHistoryBatchAsync(List records); }