['required', 'string', 'max:50'], 'product_id' => ['required', Rule::exists('products', 'uuid')->whereNull('deleted_at')], 'billing_cycle' => ['required', Rule::in([...BillingCycleCatalog::codes(), 'onetime'])], 'addons' => 'array', 'addons.*.addon_id' => 'nullable|exists:product_addon,id', 'addons.*.qty' => 'nullable|integer|min:0|max:1000000', ]; } }