Edit File: NegotiationOrderController.php
<?php namespace App\Http\Controllers\Api\Provider; use App\Enums\NegotiationOrderStatusEnum; use App\Http\Controllers\Controller; use App\Http\Requests\Api\Provider\UnPricingOrders\CreateInvoiceRequest; use App\Http\Resources\Api\Provider\UnPricingOrders\OrderDetailsResource; use App\Http\Resources\Api\Provider\UnPricingOrders\OrdersResource; use App\Models\NegotiationOrder; use App\Services\CallService; use App\Services\User\NegotiationOrderService; use App\Traits\PaginationTrait; use App\Traits\ResponseTrait; use Illuminate\Http\JsonResponse; class NegotiationOrderController extends Controller { use ResponseTrait, PaginationTrait; public function __construct(private NegotiationOrderService $negotiationOrderService) {} public function orders(): JsonResponse { $conditions = ['provider_id' => auth()->id()]; $orders = $this->negotiationOrderService->all(paginateNum: $this->paginateNum(), conditions: $conditions)['rows']; return $this->successData([ 'orders' => OrdersResource::collection($orders), 'pagination' => $this->paginationModel($orders) ]); } public function details($id): JsonResponse { $order = $this->negotiationOrderService->find($id)['row']; return $this->successData(OrderDetailsResource::make($order)); } public function createInvoice($order_id, CreateInvoiceRequest $request): JsonResponse { $result = $this->negotiationOrderService->createInvoice(order_id: $order_id, request: $request); return $this->response($result['key'], $result['msg']); } public function pendingNegotiationOrdersCount() { $result = $this->negotiationOrderService->negotiationOrdersCount(['provider_id' => auth()->id(), 'status' => NegotiationOrderStatusEnum::Pending->value]); return $this->successData(['pending_negotiation_orders_count' => $result]); } public function makeCall($order_id): JsonResponse { $result = (new CallService())->makeCall(NegotiationOrder::class,'provider_id',$order_id, 'negotiation'); return $this->response($result['key'], $result['msg'], $result['data']); } }
Back to File Manager