import dayjs from 'dayjs';

const dateRanges = {
    latest: () => ({
        after: '1900-01-01',
        before: dayjs(new Date()).add(1, 'day').format('YYYY-MM-DD'),
        orderBy: 'DATE_DESC',
    }),
    upcoming: () => ({
        after: dayjs(new Date()).format('YYYY-MM-DD'),
        before: '2100-01-01',
        orderBy: 'DATE_ASC',
    }),
    new: () => ({
        after: '1900-01-01',
        before: '2100-01-01',
        orderBy: 'CREATED_AT_DESC',
    }),
    all: () => ({
        after: '1900-01-01',
        before: '2100-01-01',
        orderBy: 'DATE_DESC',
    }),
};

function rangeDates(state) {
    return dateRanges[state.range]();
}

function before(state) {
    return dateRanges[state.range]().before;
}

function after(state) {
    return dateRanges[state.range]().after;
}

function orderBy(state) {
    return dateRanges[state.range]().orderBy;
}

export default {
    rangeDates,
    before,
    after,
    orderBy,
};