|string> */ public function rules(): array { return [ 'external_order_id' => 'required|string', 'name' => 'required|string|max:255', 'warehouse_code' => 'required|string', 'payment_method' => 'nullable|string|in:cash,credit_card,line_pay,ecpay,transfer,other', 'total_amount' => 'required|numeric|min:0', 'total_qty' => 'required|numeric|min:0', 'sold_at' => 'nullable|date', 'items' => 'required|array|min:1', 'items.*.product_id' => 'required|integer', 'items.*.batch_number' => 'nullable|string', 'items.*.qty' => 'required|numeric|min:0.0001', 'items.*.price' => 'required|numeric|min:0', ]; } }