У меня есть приложение Laravel, которое отправляет напоминания в определенные c дни до tenancy_start_date
. По существу, каждые 3 дня, затем 2 дня, затем ежедневно ([30, 27, 24, 21, 19, 17, 15, 13, 11, 9, 8, 7, 6, 5]). Есть ли более аккуратный способ закодировать это? :
User::where('active', 1)
->where('setup_status', '<', 9)
->where(function ($q) {
$q->where('tenancy_start_date', '=', now()->addDays(31)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(28)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(25)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(22)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(20)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(18)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(16)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(14)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(12)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(10)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(9)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(8)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(7)->toDateString())
->orWhere('tenancy_start_date', '=', now()->addDays(5)->toDateString());
})->get();