59 lines
1.5 KiB
PHP
Raw Permalink Normal View History

2024-01-10 12:56:02 +04:00
<?php
namespace App\Repositories\SQL;
2024-01-30 11:21:30 +04:00
use App\Enums\RoleEnum;
use App\Enums\StatusEnum;
2024-01-10 12:56:02 +04:00
use App\Models\Delivery;
use App\Repositories\Interfaces\DeliveryRepositoryInterface;
2024-01-30 11:21:30 +04:00
use Illuminate\Support\Facades\Date;
2024-01-10 12:56:02 +04:00
class DeliveryRepository implements DeliveryRepositoryInterface
{
public function getAllDeliveries()
{
2024-01-30 11:21:30 +04:00
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();
2024-01-10 12:56:02 +04:00
}
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();
}
2024-01-30 11:21:30 +04:00
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);
}
2024-01-10 12:56:02 +04:00
}