|
@@ -9,38 +9,47 @@ class NodeRequest extends FormRequest
|
|
|
public function rules(): array
|
|
|
{
|
|
|
return [
|
|
|
- 'type' => 'required|between:1,3',
|
|
|
- 'name' => 'required',
|
|
|
- 'country_code' => 'required',
|
|
|
+ 'is_ddns' => 'required|boolean',
|
|
|
+ 'name' => 'required|string',
|
|
|
'server' => 'required_if:is_ddns,1|nullable|ends_with:'.implode(',', config('domains')),
|
|
|
+ 'ip' => 'ipv4|required_if:is_ddns,0|nullable',
|
|
|
+ 'ipv6' => 'nullable|ipv6',
|
|
|
'push_port' => 'numeric|between:0,65535',
|
|
|
'traffic_rate' => 'required|numeric|min:0',
|
|
|
- 'level' => 'required|numeric|between:0,255',
|
|
|
+ 'level' => 'required|numeric|exists:level,level',
|
|
|
+ 'rule_group_id' => 'nullable|exists:rule_group,id',
|
|
|
'speed_limit' => 'required|numeric|min:0',
|
|
|
'client_limit' => 'required|numeric|min:0',
|
|
|
- 'port' => 'nullable|numeric|between:0,65535',
|
|
|
- 'ip' => 'ipv4|required_if:is_ddns,0|nullable',
|
|
|
- 'ipv6' => 'nullable|ipv6',
|
|
|
- 'relay_server' => 'required_if:is_relay,1',
|
|
|
- 'relay_port' => 'required_if:is_relay,1|numeric|between:0,65535',
|
|
|
- 'method' => 'required_if:type,1',
|
|
|
- 'protocol' => 'required_if:type,1',
|
|
|
- 'obfs' => 'required_if:type,1',
|
|
|
- 'is_subscribe' => 'boolean',
|
|
|
- 'is_ddns' => 'boolean',
|
|
|
- 'is_relay' => 'boolean',
|
|
|
- 'is_udp' => 'boolean',
|
|
|
- 'detection_type' => 'between:0,3',
|
|
|
- 'compatible' => 'boolean',
|
|
|
- 'single' => 'boolean',
|
|
|
+ 'labels' => 'nullable|exists:label,id',
|
|
|
+ 'country_code' => 'required|exists:country,code',
|
|
|
+ 'description' => 'nullable|string',
|
|
|
'sort' => 'required|numeric|between:0,255',
|
|
|
- 'status' => 'boolean',
|
|
|
+ 'is_udp' => 'required|boolean',
|
|
|
+ 'status' => 'required|boolean',
|
|
|
+ 'type' => 'required|numeric|between:1,4',
|
|
|
+ 'method' => 'required_if:type,1,4|exists:ss_config,name',
|
|
|
+ 'protocol' => 'required_if:type,1,4|exists:ss_config,name',
|
|
|
+ 'protocol_param' => 'nullable|string',
|
|
|
+ 'obfs' => 'required_if:type,1,4|exists:ss_config,name',
|
|
|
+ 'obfs_param' => 'nullable|string',
|
|
|
+ 'compatible' => 'required|boolean',
|
|
|
+ 'is_subscribe' => 'required|boolean',
|
|
|
+ 'detection_type' => 'required|numeric|between:0,3',
|
|
|
+ 'single' => 'required|boolean',
|
|
|
+ 'port' => 'required_if:single,1|numeric|between:1,65535|nullable',
|
|
|
+ 'passwd' => 'required_if:single,1|string|nullable',
|
|
|
'v2_alter_id' => 'required_if:type,2|numeric|between:0,65535',
|
|
|
'v2_port' => 'required_if:type,2|numeric|between:0,65535',
|
|
|
'v2_method' => 'required_if:type,2',
|
|
|
'v2_net' => 'required_if:type,2',
|
|
|
'v2_type' => 'required_if:type,2',
|
|
|
- 'v2_tls' => 'boolean',
|
|
|
+ 'v2_host' => 'string|nullable',
|
|
|
+ 'v2_path' => 'string|nullable',
|
|
|
+ 'v2_tls' => 'required_if:type,2|boolean',
|
|
|
+ 'tls_provider' => 'json|nullable',
|
|
|
+ 'is_relay' => 'required|boolean',
|
|
|
+ 'relay_server' => 'required_if:is_relay,1',
|
|
|
+ 'relay_port' => 'required_if:is_relay,1|numeric|between:1,65535',
|
|
|
];
|
|
|
}
|
|
|
|