from utils import read, where, format_date


@read
def _select(*args, **kwargs):
    return f'''select rfn_fund_id as fund_id, rfn_date as nav_date, rfn_nav_cal as nav_cal from robo_fund_navs {where(*args, **kwargs)}'''


def get_navs(fund_id=None, min_date=None, max_date=None):
    sqls = []
    if min_date:
        sqls.append(f"rfn_date >= '{format_date(min_date)}'")
    if max_date:
        sqls.append(f"rfn_date <= '{format_date(max_date)}'")
    return _select(*sqls, rfn_fund_id=fund_id)


if __name__ == '__main__':
    from utils import parse_date
    navs = get_navs(fund_id=1, min_date=parse_date('2022-11-01'))
    print(navs)