generated from liutk/owl-admin-base
44 lines
1.3 KiB
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()));
|
|
})
|
|
);
|
|
}
|
|
}
|