store-manage/app/Admin/Controllers/Plan/TaskController.php

44 lines
1.3 KiB
PHP

<?php
namespace App\Admin\Controllers\Plan;
use App\Admin\Controllers\AdminController;
use App\Admin\Filters\TaskFilter;
use App\Admin\Services\Plan\TaskService;
use App\Models\Task;
use App\Models\TaskHygiene;
use App\Models\TaskLedger;
use App\Models\TaskPerformance;
use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Http\Request;
/**
* @property TaskService $service
*/
class TaskController extends AdminController
{
protected string $serviceName = TaskService::class;
public function shareList(Request $request)
{
$tasks = Task::filter($request->input(), TaskFilter::class)
->with([
'taskable' => function (MorphTo $morphTo) {
$morphTo->morphWith([
TaskLedger::class => ['store', 'storeMaster'],
TaskPerformance::class => ['store', 'storeMaster'],
TaskHygiene::class => ['store', 'storeMaster', 'workflow'],
]);
},
])
->latest('id')
->get();
return $this->response()->success(
$tasks->map(function (Task $task) {
return tap($task, fn (Task $task) => $task->taskable?->setRelation('task', $task->withoutRelations()));
})
);
}
}