isMethod('POST') ? 'required' : 'sometimes'; return [ // uma proposta de cada tipo por pacote da unidade 'type' => [ $required, 'string', 'in:pavao,irrecusavel', Rule::unique('class_package_unit_variations') ->where('class_package_unit_id', $this->route('package')) ->ignore($this->route('id')), ], 'register_value' => "$required|numeric|min:0", 'register_installments_min' => "$required|integer|min:1|max:60", 'register_installments_max' => "$required|integer|min:1|max:60|gte:register_installments_min", 'package_value' => "$required|numeric|min:0", 'package_installments_min' => "$required|integer|min:1|max:60", 'package_installments_max' => "$required|integer|min:1|max:60|gte:package_installments_min", 'discount_value' => 'sometimes|nullable|numeric|min:0', 'material_installments_min' => "$required|integer|min:1|max:60", 'material_installments_max' => "$required|integer|min:1|max:60|gte:material_installments_min", // sem materials na criacao a proposta herda os materiais do pacote // o material_value e sempre a soma da lista, nunca vem na request 'materials' => 'sometimes|nullable|array', 'materials.*.product_id' => 'required_with:materials|integer|exists:products,id', 'materials.*.quantity' => 'required_with:materials|integer|min:1', 'materials.*.price' => 'required_with:materials|numeric|min:0', ]; } }