| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace App\Services;
- use App\Models\ClientFavoriteProvider;
- use App\Http\Resources\ClientFavoriteProviderResource;
- use Illuminate\Http\Resources\Json\AnonymousResourceCollection;
- class ClientFavoriteProviderService
- {
- public function getByClientId(int $clientId): AnonymousResourceCollection
- {
- $favorites = ClientFavoriteProvider::with('provider')
- ->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();
- }
- }
|