/
ArchOracle
/
trading
Обзор
Документация
Войти
/
ArchOracle
/
trading
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/app/application/use_case/GetSharesUseCase.py
52 строки
2 KB
ArchOracle
Обновил use case получения списка акций и сборку сервиса в контейнере.
04 май 2026, 14:39
04 май 2026, 14:39
3363f74
Код
Авторство
О чём код?
from src.app.application.port.out.repository.CandleRepository import CandleRepository from src.app.application.port.out.repository.ShareRepository import ShareRepository from src.app.domain.TradingSystem.Dto.ShareDto import ShareDto from src.app.domain.TradingSystem.Enum.CandleInterval import CandleInterval class GetSharesUseCase: def __init__( self, share_repo: ShareRepository, candle_repo: CandleRepository, ): self.share_repo = share_repo self.candle_repo = candle_repo def execute(self) -> list[ShareDto]: shares = self.share_repo.get_all() figis = [s.figi for s in shares] # ключевой момент last_candles = self.candle_repo.get_last_by_figis(figis, CandleInterval.CANDLE_INTERVAL_DAY) result = [] for share in shares: last = last_candles.get(share.figi) if last: dto = ShareDto( figi=share.figi, ticker=share.ticker, name=share.name, lot=share.lot, currency=share.currency, last_candle_time=last.open_time, last_open_price=last.open_price, ) else: dto = ShareDto( figi=share.figi, ticker=share.ticker, name=share.name, lot=share.lot, currency=share.currency, last_candle_time=None, last_open_price=None, ) result.append(dto) return result