['sometimes', 'array'], 'name.de' => ['required_with:name', 'string', 'max:255'], 'name.en' => ['required_with:name', 'string', 'max:255'], 'description' => ['sometimes', 'array'], 'description.de' => ['nullable', 'string'], 'description.en' => ['nullable', 'string'], 'icon' => ['sometimes', 'nullable', 'string', 'max:50'], 'color' => ['sometimes', 'nullable', 'string', 'max:7'], 'sort_order' => ['sometimes', 'integer', 'min:0'], 'is_active' => ['sometimes', 'boolean'], 'tenant_id' => ['sometimes', 'nullable', 'integer', 'exists:tenants,id'], ]; if ($action === 'create') { $rules['name'] = ['required', 'array']; $rules['name.de'] = ['required', 'string', 'max:255']; $rules['name.en'] = ['required', 'string', 'max:255']; } return $rules; } public static function allowedFields(string $action): array { return [ 'name', 'description', 'icon', 'color', 'sort_order', 'is_active', 'tenant_id', ]; } }