isMethod('get')) { return [ // ]; } return [ 'product_total' => 'required', 'total' => 'required', //'orders.price_delivery' => 'required', //'orders.type_delivery' => 'required', //'orders.payment_type' => 'required', //'orders.discount' => 'nullable', 'products' => 'array|required', //'orders.address.first_name' => 'required', //'orders.address.phone' => 'required', ]; } // protected function getValidatorInstance() { // $validator = parent::getValidatorInstance(); // if ($this->isMethod('post')) { // // $validator->sometimes('orders.branch_id', 'required', function($input) { // return $input->orders['type_delivery'] == 2; // }); // // $validator->sometimes('orders.shipment_date', 'required', function($input) { // return $input->orders['type_delivery'] == 2; // }); // // $validator->sometimes('orders.address.city', 'required', function($input) { // return $input->orders['type_delivery'] == 1; // }); // // $validator->sometimes('orders.address.region', 'required', function($input) { // return $input->orders['type_delivery'] == 1; // }); // // $validator->sometimes('orders.address.street', 'required', function($input) { // return $input->orders['type_delivery'] == 1; // }); // } // return $validator; // } public function getPhone(): int { return $this->get('orders')['address']['phone']; } public function getFirstName(): string { return $this->get('orders')['address']['first_name']; } /** * @return mixed|null */ public function getCity() { return $this->get('orders')['address']['city'] ? $this->get('orders')['address']['city'] : null; } public function getRegion() { return $this->get('orders')['address']['region'] ? $this->get('orders')['address']['region'] : null; } public function getStreet() { return $this->get('orders')['address']['street'] ? $this->get('orders')['address']['street'] : null; } public function getApartment() { return $this->get('orders')['address']['apartment'] ? $this->get('orders')['address']['apartment'] : null; } public function getFloor() { return $this->get('orders')['address']['floor'] ? $this->get('orders')['address']['floor'] : null; } public function getEntrance() { return $this->get('orders')['address']['entrance'] ? $this->get('orders')['address']['entrance'] : null; } public function getProductTotal(): int { return (int) $this->get('product_total'); } public function getTotal(): int { return $this->get('total'); } public function getDeliveryPrice() { return $this->get('orders')['price_delivery']; } /** * @return mixed|null */ public function shipment_date() { return $this->get('orders')['shipment_date'] ? $this->get('orders')['shipment_date'] : null; } public function getTypeDelivery(): int { return $this->get('orders')['type_delivery']; } public function getPaymentType(): string { return $this->get('orders')['payment_type']; } /** * @return mixed|null */ public function getBranchID() { return $this->get('orders')['branch_id'] ? $this->get('orders')['branch_id'] : null; } /** * @return mixed */ public function getProducts() { return $this->get('products'); } public function getDiscount() { return $this->get('orders')['discount'] ? $this->get('orders')['discount'] : null; } }