package link.at17.mid.tushare.data.models.interfaces;

import java.time.LocalDateTime;
import java.util.List;

import org.apache.ibatis.annotations.Param;

/**
 * 根据 {@code ITsStockInfo} 获取与交易日相关数据的接口，主要用于数据更新轮询时查询给定股票/板块指数在本地数据表记录的交易日情况
 * @see ITsStockInfo
 * 
 */
public interface ITsTradeDate {

    /**
     * 获取指定股票/板块指数在本地存在的最新一交易日
     * @param stockInfo
     * @return
     */
    LocalDateTime getLatestTradeDate(@Param("stockInfo") ITsStockInfo stockInfo);
    /**
     * 获取指定股票/板块指数在本地存在的所有交易日
     * @param stockInfo
     * @return
     */
    List<LocalDateTime> getAllTradeDates(@Param("stockInfo") ITsStockInfo stockInfo);
    /**
     * 交叉对比 stock_calendar 表，获取个股数据缺失的日期<p>
     * 需要确保 stock_calendar 表所有数据完整无缺失
     * @param stockInfo
     * @return
     */
    List<LocalDateTime> getAllMissingDates(@Param("stockInfo") ITsStockInfo stockInfo);
}
