from py_jftech import read, to_tuple, where


@read
def get_index_list(index_ids=None, min_date=None, max_date=None):
    sqls = []
    if min_date:
        sqls.append(f"rid_date >= '{min_date}'")
    if max_date:
        sqls.append(f"rid_date <= '{max_date}'")
    return f'''
    select * from robo_index_datas 
    {where(*sqls, rid_index_id=to_tuple(index_ids))} order by rid_index_id, rid_date
    '''


@read
def get_eco_list(eco_ids=None, min_date=None, max_date=None):
    sqls = []
    if min_date:
        sqls.append(f"red_date >= '{min_date}'")
    if max_date:
        sqls.append(f"red_date <= '{max_date}'")
    return f'''
    select * from robo_eco_datas 
    {where(*sqls, red_eco_id=to_tuple(eco_ids))} order by red_eco_id, red_date
    '''

@read
def get_fund_list(fund_ids=None, min_date=None, max_date=None):
    sqls = []
    if min_date:
        sqls.append(f"rfn_date >= '{min_date}'")
    if max_date:
        sqls.append(f"rfn_date <= '{max_date}'")
    return f'''
    select * from robo_fund_navs 
    {where(*sqls, rfn_fund_id=to_tuple(fund_ids))} order by rfn_fund_id, rfn_date
    '''

@read
def get_base_info(ids=None):
    sqls = []
    return f"""
    SELECT rbd_id id,v_rbd_bloomberg_ticker ticker,v_rbd_type type FROM `robo_base_datum`
    {where(*sqls,rbd_id=to_tuple(ids))}
    """