import moment from "moment";

export const getDateRangeForFilter = (filter) => {
    const now = moment();
    let startDate: moment.Moment, endDate: moment.Moment;

    switch (filter) {
      case 'today':
        startDate = now.clone().startOf('day');
        endDate = now.clone().endOf('day');
        break;
      case 'this_week':
        startDate = now.clone().startOf('week');
        endDate = now.clone().endOf('week');
        break;
      case 'this_month':
        startDate = now.clone().startOf('month');
        endDate = now.clone().endOf('month');
        break;
      case 'this_quarter':
        startDate = now.clone().startOf('quarter');
        endDate = now.clone().endOf('quarter');
        break;
      case 'this_year':
        startDate = now.clone().startOf('year');
        endDate = now.clone().endOf('year');
        break;
      case 'last_week':
        startDate = now.clone().subtract(1, 'week').startOf('week');
        endDate = now.clone().subtract(1, 'week').endOf('week');
        break;
      case 'last_month':
        startDate = now.clone().subtract(1, 'month').startOf('month');
        endDate = now.clone().subtract(1, 'month').endOf('month');
        break;
      case 'last_quarter':
        startDate = now.clone().subtract(1, 'quarter').startOf('quarter');
        endDate = now.clone().subtract(1, 'quarter').endOf('quarter');
        break;
      case 'last_year':
        startDate = now.clone().subtract(1, 'year').startOf('year');
        endDate = now.clone().subtract(1, 'year').endOf('year');
        break;
      case 'last_7_days':
        startDate = now.clone().subtract(6, 'days').startOf('day');
        endDate = now.clone().endOf('day');
        break;
      case 'last_10_days':
        startDate = now.clone().subtract(9, 'days').startOf('day');
        endDate = now.clone().endOf('day');
        break;
      case 'last_20_days':
        startDate = now.clone().subtract(19, 'days').startOf('day');
        endDate = now.clone().endOf('day');
        break;
      case 'last_30_days':
        startDate = now.clone().subtract(29, 'days').startOf('day');
        endDate = now.clone().endOf('day');
        break;
      case 'last_60_days':
        startDate = now.clone().subtract(59, 'days').startOf('day');
        endDate = now.clone().endOf('day');
        break;
      case 'last_90_days':
        startDate = now.clone().subtract(89, 'days').startOf('day');
        endDate = now.clone().endOf('day');
        break;
      default:
        return;
    }

    return {
      startDate,
      endDate
    };
  };