scheduleService = $scheduleService; } public function index(): JsonResponse { $schedules = $this->scheduleService->getAll(); return $this->successResponse( ScheduleResource::collection($schedules), ); } public function store(ScheduleRequest $request): JsonResponse { try { $validated = $request->validated(); if (isset($validated['schedules']) && is_array($validated['schedules']) && count($validated['schedules']) > 0) { $baseData = [ 'client_id' => $validated['client_id'], 'provider_id' => $validated['provider_id'], 'address_id' => $validated['address_id'], 'schedule_type' => $validated['schedule_type'] ?? 'default', 'status' => $validated['status'] ?? 'pending', ]; $schedules = $this->scheduleService->createMultiple($baseData, $validated['schedules']); return $this->successResponse( payload: ScheduleResource::collection($schedules), message: count($schedules) . " " . __("schedules.schedules_created"), code: 201, ); } $schedule = $this->scheduleService->create($validated); return $this->successResponse( payload: new ScheduleResource($schedule), message: __("messages.created"), code: 201, ); } catch (\Exception $e) { return $this->errorResponse($e->getMessage(), 422); } } public function show(string $id): JsonResponse { $schedule = $this->scheduleService->getById($id); return $this->successResponse( new ScheduleResource($schedule), ); } public function update(ScheduleRequest $request, string $id): JsonResponse { try { $schedule = $this->scheduleService->update($id, $request->validated()); return $this->successResponse( payload: new ScheduleResource($schedule), message: __("messages.updated"), ); } catch (\Exception $e) { return $this->errorResponse($e->getMessage(), 422); } } public function destroy(string $id): JsonResponse { $this->scheduleService->delete($id); return $this->successResponse( message: __("messages.deleted"), code: 204, ); } }