2024-01-30 11:21:30 +04:00

59 lines
1.5 KiB
PHP

<?php
namespace App\Repositories\SQL;
use App\Enums\RoleEnum;
use App\Enums\StatusEnum;
use App\Models\Delivery;
use App\Repositories\Interfaces\DeliveryRepositoryInterface;
use Illuminate\Support\Facades\Date;
class DeliveryRepository implements DeliveryRepositoryInterface
{
public function getAllDeliveries()
{
if(auth()->user()->role == RoleEnum::DRIVER) {
return Delivery::where('user_id', auth()->user()->id)
->orderBy('status', 'asc')
->filter()
->paginate(10)
->withQueryString();
}
return Delivery::where('deliveries.warehouse_id', auth()->user()->warehouse_id)
->orderBy('status', 'asc')
->filter()
->paginate(10)
->withQueryString();
}
public function createDelivery(array $data)
{
Delivery::create($data);
}
public function updateDelivery(Delivery $delivery, array $data)
{
$delivery->update($data);
}
public function deleteDelivery(Delivery $delivery)
{
$delivery->delete();
}
public function startDelivery(Delivery $delivery)
{
$delivery->status = StatusEnum::SENT;
$delivery->sending_date = Date::now();
$delivery->update((array)$delivery);
}
public function endDelivery(Delivery $delivery)
{
$delivery->status = StatusEnum::DELIVERED;
$delivery->delivery_date = Date::now();
$delivery->update((array)$delivery);
}
}