Skip to content

Commit d9d1290

Browse files
committed
- Added last 5 years and last 10 years to preset date ranges
1 parent 415f901 commit d9d1290

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/Enums/PresetDateRanges.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ enum PresetDateRanges: string implements IsEnum, DateRange
2424
case LAST_7_DAYS = 'last_7_days';
2525
case LAST_14_DAYS = 'last_14_days';
2626
case LAST_30_DAYS = 'last_30_days';
27+
case LAST_5_YEARS = 'last_5_years';
28+
case LAST_10_YEARS = 'last_10_years';
2729
case LIFETIME = 'lifetime';
2830

2931
public function getDateFrom(): Carbon
@@ -40,6 +42,8 @@ public function getDateFrom(): Carbon
4042
self::LAST_7_DAYS => now()->subDays(7 - 1)->startOfDay(),
4143
self::LAST_14_DAYS => now()->subDays(14 - 1)->startOfDay(),
4244
self::LAST_30_DAYS => now()->subDays(30 - 1)->startOfDay(),
45+
self::LAST_5_YEARS => now()->subYears(5 - 1)->startOfYear(),
46+
self::LAST_10_YEARS => now()->subYears(10 - 1)->startOfYear(),
4347
self::LIFETIME => now()->subYears(5 - 1)->startOfYear(),
4448
};
4549
}
@@ -56,6 +60,8 @@ public function getDateTo(): Carbon
5660
self::THIS_YEAR => now()->endOfYear(),
5761
self::LAST_YEAR => now()->subYear()->endOfYear(),
5862
self::LAST_7_DAYS, self::LAST_14_DAYS, self::LAST_30_DAYS => now()->endOfDay(),
63+
self::LAST_5_YEARS => now()->endOfYear(),
64+
self::LAST_10_YEARS => now()->endOfYear(),
5965
self::LIFETIME => now(),
6066
};
6167
}
@@ -81,6 +87,8 @@ protected function generatePreviousFromDate(): Carbon
8187
self::LAST_7_DAYS => $from_date->subDays(7),
8288
self::LAST_14_DAYS => $from_date->subDays(14),
8389
self::LAST_30_DAYS => $from_date->subDays(30),
90+
self::LAST_5_YEARS => $from_date->subYears(5),
91+
self::LAST_10_YEARS => $from_date->subYears(10),
8492
self::LIFETIME => $from_date->subYears(5),
8593
};
8694
}
@@ -101,6 +109,8 @@ protected function generatePreviousToDate(Carbon $from_date): Carbon
101109
self::LAST_7_DAYS => $from_date->addDays(7 - 1)->endOfDay(),
102110
self::LAST_14_DAYS => $from_date->addDays(14 - 1)->endOfDay(),
103111
self::LAST_30_DAYS => $from_date->addDays(30 - 1)->endOfDay(),
112+
self::LAST_5_YEARS => $from_date->addYears(5 - 1)->endOfYear(),
113+
self::LAST_10_YEARS => $from_date->addYears(10 - 1)->endOfYear(),
104114
self::LIFETIME => $from_date->addYears(5 - 1)->endOfYear(),
105115
};
106116
}

tests/Unit/Enums/PresetDateRangesTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ public function it_can_generate_correct_previous_start_date(): void
2323
$this->assertEquals('2024-06-25 00:00:00', PresetDateRanges::LAST_7_DAYS->getPreviousDateRange()->getDateFrom(), 'Incorrect previous start of LAST_7_DAYS');
2424
$this->assertEquals('2024-06-11 00:00:00', PresetDateRanges::LAST_14_DAYS->getPreviousDateRange()->getDateFrom(), 'Incorrect previous start of LAST_14_DAYS');
2525
$this->assertEquals('2024-05-10 00:00:00', PresetDateRanges::LAST_30_DAYS->getPreviousDateRange()->getDateFrom(), 'Incorrect previous start of LAST_30_DAYS');
26+
$this->assertEquals('2015-01-01 00:00:00', PresetDateRanges::LAST_5_YEARS->getPreviousDateRange()->getDateFrom(), 'Incorrect previous start of LAST_5_YEARS');
27+
$this->assertEquals('2005-01-01 00:00:00', PresetDateRanges::LAST_10_YEARS->getPreviousDateRange()->getDateFrom(), 'Incorrect previous start of LAST_10_YEARS');
2628
$this->assertEquals('2015-01-01 00:00:00', PresetDateRanges::LIFETIME->getPreviousDateRange()->getDateFrom(), 'Incorrect previous start of LIFETIME');
2729
}
2830

@@ -42,6 +44,8 @@ public function it_can_generate_correct_previous_end_date(): void
4244
$this->assertEquals('2024-07-01 23:59:59', PresetDateRanges::LAST_7_DAYS->getPreviousDateRange()->getDateTo(), 'Incorrect previous end of LAST_7_DAYS');
4345
$this->assertEquals('2024-06-24 23:59:59', PresetDateRanges::LAST_14_DAYS->getPreviousDateRange()->getDateTo(), 'Incorrect previous end of LAST_14_DAYS');
4446
$this->assertEquals('2024-06-08 23:59:59', PresetDateRanges::LAST_30_DAYS->getPreviousDateRange()->getDateTo(), 'Incorrect previous end of LAST_30_DAYS');
47+
$this->assertEquals('2019-12-31 23:59:59', PresetDateRanges::LAST_5_YEARS->getPreviousDateRange()->getDateTo(), 'Incorrect previous end of LAST_5_YEARS');
48+
$this->assertEquals('2014-12-31 23:59:59', PresetDateRanges::LAST_10_YEARS->getPreviousDateRange()->getDateTo(), 'Incorrect previous end of LAST_10_YEARS');
4549
$this->assertEquals('2019-12-31 23:59:59', PresetDateRanges::LIFETIME->getPreviousDateRange()->getDateTo(), 'Incorrect previous end of LIFETIME');
4650
}
4751

@@ -61,6 +65,8 @@ public function it_can_generate_correct_start_date(): void
6165
$this->assertEquals('2024-07-02 00:00:00', PresetDateRanges::LAST_7_DAYS->getDateFrom(), 'Incorrect start of LAST_7_DAYS');
6266
$this->assertEquals('2024-06-25 00:00:00', PresetDateRanges::LAST_14_DAYS->getDateFrom(), 'Incorrect start of LAST_14_DAYS');
6367
$this->assertEquals('2024-06-09 00:00:00', PresetDateRanges::LAST_30_DAYS->getDateFrom(), 'Incorrect start of LAST_30_DAYS');
68+
$this->assertEquals('2020-01-01 00:00:00', PresetDateRanges::LAST_5_YEARS->getDateFrom(), 'Incorrect start of LAST_5_YEARS');
69+
$this->assertEquals('2015-01-01 00:00:00', PresetDateRanges::LAST_10_YEARS->getDateFrom(), 'Incorrect start of LAST_10_YEARS');
6470
$this->assertEquals('2020-01-01 00:00:00', PresetDateRanges::LIFETIME->getDateFrom(), 'Incorrect start of LIFETIME');
6571
}
6672

@@ -80,6 +86,8 @@ public function it_can_generate_correct_end_date(): void
8086
$this->assertEquals('2024-07-08 23:59:59', PresetDateRanges::LAST_7_DAYS->getDateTo(), 'Incorrect end of LAST_7_DAYS');
8187
$this->assertEquals('2024-07-08 23:59:59', PresetDateRanges::LAST_14_DAYS->getDateTo(), 'Incorrect end of LAST_14_DAYS');
8288
$this->assertEquals('2024-07-08 23:59:59', PresetDateRanges::LAST_30_DAYS->getDateTo(), 'Incorrect end of LAST_30_DAYS');
89+
$this->assertEquals('2024-12-31 23:59:59', PresetDateRanges::LAST_5_YEARS->getDateTo(), 'Incorrect end of LAST_5_YEARS');
90+
$this->assertEquals('2024-12-31 23:59:59', PresetDateRanges::LAST_10_YEARS->getDateTo(), 'Incorrect end of LAST_10_YEARS');
8391
$this->assertEquals('2024-07-08 22:07:00', PresetDateRanges::LIFETIME->getDateTo(), 'Incorrect end of LIFETIME');
8492
}
8593
}

0 commit comments

Comments
 (0)