from datetime import datetime as dt

from api import AssetPool, AssetOptimize, AssetRisk
from framework import component, autowired
from asset_pool.dao import robo_assets_pool as rap


@component
class FundAssetPool(AssetPool):

    @autowired
    def __init__(self, optimize: AssetOptimize = None, risk: AssetRisk = None):
        self._optimize = optimize
        self._risk = risk

    def get_pool(self, day=dt.today()):
        opti_pool = self._optimize.get_optimize_pool(day)
        risk_pool = self._risk.get_risk_pool(day)
        return [x for x in opti_pool if x not in risk_pool]

    def clear(self, day=None):
        rap.delete(day)