| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- <?php
- namespace App\Services;
- use App\Http\Resources\AddressResource;
- use App\Models\Address;
- use Illuminate\Database\Eloquent\Collection;
- use Illuminate\Support\Facades\Log;
- class AddressService
- {
- public function findBySource(array $data): ?Collection
- {
- $allAddresses = Address::where('source', $data['source'])
- ->where('source_id', $data['source_id'])
- ->with(['city', 'state'])
- ->whereNull('deleted_at')
- ->orderBy('is_primary', 'desc')
- ->get();
- return $allAddresses;
- }
- public function one($id): Address
- {
- return Address::find($id);
- }
- public function create(array $data): Address
- {
- return Address::create($data);
- }
- public function update(array $data, int $id): Address
- {
- $address = Address::findOrFail($id);
- if (isset($data['is_primary']) && $data['is_primary']) {
- Address::where('source', $address->source)
- ->where('source_id', $address->source_id)
- ->where('id', '!=', $id)
- ->update(['is_primary' => false]);
- }
- $address->fill($data);
- $address->save();
- return $address->fresh();
- }
- public function delete(int $id): bool
- {
- $address = Address::findOrFail($id);
- return $address->delete();
- }
- }
|