isMethod('post')) return []; return [ 'src' => [ 'required', 'exists:addresses,id', ], 'dst' => [ 'required', 'exists:addresses,id', 'different:src', function ($attribute,$value,$fail) use ($request) { $dst = Address::withTrashed()->findOrFail($value); $src = Address::withTrashed()->findOrFail($request->src); if ((! $dst->active) && ($dst->system_id !== $src->system_id) && ($src->system->name !== 'Discovered System')) $fail('Destination must be active, or be from the system system'); }, function ($attribute,$value,$fail) use ($request) { $dst = Address::withTrashed()->findOrFail($value); $src = Address::withTrashed()->findOrFail($request->src); if ($src->ftn !== $dst->ftn) $fail('Source and Destination must be the same FTN'); }, ], ]; } }