from framework import read, where, format_date

__COLUMNS__ = {
    're_id': 'id',
    're_ticker': 'ticker',
    're_date': 'date',
    're_close': 'close',
}


@read
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 f'''select {','.join([f"{x[0]} as {x[1]}" for x in __COLUMNS__.items()])} from robo_exrate {where(*sqls, re_ticker=ticker)}'''


@read(one=True)
def get_exrate(ticker, date):
    return f'''select {','.join([f"{x[0]} as {x[1]}" for x in __COLUMNS__.items()])} from robo_exrate {where(re_ticker=ticker, re_date=date)}'''