search = $search; } public function collection() { $query = HolidayCalendar::query(); if (!empty($this->search)) { $search = $this->search; $query->where(function ($q) use ($search) { $q->whereRaw('LOWER(description) LIKE ?', ['%' . strtolower($search) . '%']) ->orWhereRaw('LOWER(type) LIKE ?', ['%' . strtolower($search) . '%']) ->orWhereRaw('CAST(date AS TEXT) LIKE ?', ['%' . $search . '%']); }); } return $query->get(); } public function map($row): array { return [ $row->id, $row->date, $row->description, $row->type, $row->created_at, $row->updated_at ]; } public function headings(): array { return [ 'ID', 'Date', 'Description', 'Type', 'Created At', 'Updated At' ]; } public function columnFormats(): array { return [ 'A' => NumberFormat::FORMAT_NUMBER, 'B' => NumberFormat::FORMAT_DATE_DDMMYYYY, 'E' => NumberFormat::FORMAT_DATE_DATETIME, 'F' => NumberFormat::FORMAT_DATE_DATETIME ]; } }