where('client_id', $clientId) ->orderBy('created_at', 'desc') ->get(); return ClientFavoriteProviderResource::collection($favorites); } public function getById(int $id): ClientFavoriteProviderResource { $favorite = ClientFavoriteProvider::with('provider')->findOrFail($id); return new ClientFavoriteProviderResource($favorite); } public function create(array $data): ClientFavoriteProviderResource { $favorite = ClientFavoriteProvider::create($data); $favorite->load('provider'); return new ClientFavoriteProviderResource($favorite); } public function update(int $id, array $data): ClientFavoriteProviderResource { $favorite = ClientFavoriteProvider::findOrFail($id); $favorite->update($data); $favorite->load('provider'); return new ClientFavoriteProviderResource($favorite); } public function delete(int $id): bool { $favorite = ClientFavoriteProvider::findOrFail($id); return $favorite->delete(); } public function getFavoritedProviderIds(int $clientId): array { return ClientFavoriteProvider::where('client_id', $clientId) ->pluck('provider_id') ->toArray(); } }