from framework import read, where, format_date


@read
def _select(*args, **kwargs):
    return f'''select re_id as id, re_ticker as ticker, re_date as date, re_close as close from robo_exrate {where(*args, **kwargs)}'''


def get_exrates(ticker=None, min_date=None, max_date=None):
    sqls = []
    if min_date:
        sqls.append(f"re_date >= '{format_date(min_date)}'")
    if max_date:
        sqls.append(f"re_date <= '{format_date(max_date)}'")
    return _select(*sqls, re_ticker=ticker)


@read(one=True)
def get_exrate(ticker, date):
    return f'''select re_id as id, re_ticker as ticker, re_date as date, re_close as close from robo_exrate {where(re_ticker=ticker, re_date=date)}'''


if __name__ == '__main__':
    from framework import parse_date

    print(get_exrate(date=parse_date('2022-11-01'), ticker='EURUSD BGN Curncy'))