paragraphs: how do you access other values ​​sent from ConstraintValidator?

The obvious may well be missing here. So, in Drupal 8 I have a type of content. That has a date range field and then uses paragraphs, a paragraph with several fields, including a date field.

Therefore, I need to validate it so that the date range field (field_A) verifies that the beginning and end are correct. That is the beginning is at or before the end. No problem, that's done and dusted. FirstConstraintValidator.php.

Next (SecondConstraintValidator.php) For paragraphs on that type of content, I need to verify the date field, call it field_B, it is on or between the start and end date of Field_B. This is where I am having problems. I may be trying to do it in a way that cannot be done.

So I have (I know it's messy and incomplete):

my_module.module

function my_module_entity_bundle_field_info_alter(&$fields, DrupalCoreEntityEntityTypeInterface $entity_type, $bundle) {
  if ($entity_type->id() === 'paragraph' && $bundle === 'bundle_B') {
    $fields('field_B')->addConstraint('SecondConstraint', ());
  } else if ($entity_type->id() === 'node' && $bundle === 'bundle_A') {
    $fields('field_A')->addConstraint('FirstConstraint', ());
  }
}

FirstConstraintValidator.php

class FirstConstraintValidator extends ConstraintValidator {
  public function validate($items, Constraint $constraint) {

    $entity = $items->getEntity();

    $start_date = date("Y-m-d",strtotime($entity->get('field_A')->getValue()(0)('value')));    
    $end_date = date("Y-m-d",strtotime($entity->get('field_A')->getValue()(0)('end_value')));

    if ($start_date > $end_date) {
      // Start date must be on or before end date...
      $this->context->addViolation( xxxxxx );
    }
  }
}

SecondConstraintValidator.php

class SecondConstraintValidator extends ConstraintValidator {
  public function validate($items, Constraint $constraint) {

    $entity = $items->getEntity();
    $parentEntity = $entity->getParentEntity();

    // THIS IS WHERE I NEED TO GET SUBMITTED VALUES.
    // LINES BELOW RETURNED STORED VALUE
    $start_date = date("Y-m-d",strtotime($parentEntity->get('field_A')->getValue()(0)('value')));   
    $end_date = date("Y-m-d",strtotime($parentEntity->get('field_A')->getValue()(0)('end_value'));

    // field_a is valid (i.e. start date is before or on end date)
    if ($start_date <= $end_date) {

      if ($items->value > $end_date || $items->value < $start_date) {
        // The date is after the end date of field_a 
        // OR
        // the date is before the start date of field_a
        $this->context->addViolation( xxxxx );
      }
    }
  }
}

I notice that when I save the node, the paragraphs are validated before the rest of the node. Anyway, the alternative is to use form_alter and $ form (& # 39; # validate & # 39;) () but I understand that in D8 we should use ConstraintValidator and the like. So the question is, am I doing this the right way? Am I missing something?

Thank you