wip
This commit is contained in:
		
							
								
								
									
										45
									
								
								app/Domain/DailySummaryRetriever.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								app/Domain/DailySummaryRetriever.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | ||||
| <?php | ||||
|  | ||||
| declare(strict_types=1); | ||||
|  | ||||
| namespace Toby\Domain; | ||||
|  | ||||
| use Illuminate\Support\Carbon; | ||||
| use Illuminate\Support\Collection; | ||||
| use Toby\Domain\Enums\VacationType; | ||||
| use Toby\Eloquent\Models\User; | ||||
| use Toby\Eloquent\Models\Vacation; | ||||
|  | ||||
| class DailySummaryRetriever | ||||
| { | ||||
|     public function __construct( | ||||
|         protected VacationTypeConfigRetriever $configRetriever, | ||||
|     ) {} | ||||
|  | ||||
|     public function getAbsences(Carbon $date): Collection | ||||
|     { | ||||
|         return Vacation::query() | ||||
|             ->with(["user", "vacationRequest"]) | ||||
|             ->whereDate("date", $date) | ||||
|             ->approved() | ||||
|             ->whereTypes(VacationType::all()->filter(fn(VacationType $type) => $this->configRetriever->isVacation($type))) | ||||
|             ->get(); | ||||
|     } | ||||
|  | ||||
|     public function getRemoteDays(Carbon $date): Collection | ||||
|     { | ||||
|         return Vacation::query() | ||||
|             ->with(["user", "vacationRequest"]) | ||||
|             ->whereDate("date", $date) | ||||
|             ->approved() | ||||
|             ->whereTypes(VacationType::all()->filter(fn(VacationType $type) => !$this->configRetriever->isVacation($type))) | ||||
|             ->get(); | ||||
|     } | ||||
|  | ||||
|     public function getBirthdays(Carbon $date): Collection | ||||
|     { | ||||
|         return User::query() | ||||
|             ->whereRelation("profile", "birthday", $date) | ||||
|             ->get(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user