/**
  * Get the calculated valid-to date based on the validity type
  *
  * @return null|string
  */
 protected function calculateValidTo()
 {
     $validity = $this->definition->getValidity();
     $validity_type = $this->definition->getValidityType();
     switch ($validity_type) {
         case srCertificateTypeSetting::VALIDITY_TYPE_DATE:
             // Date already stored in Y-m-d format
             $valid_to = $validity;
             break;
         case srCertificateTypeSetting::VALIDITY_TYPE_DATE_RANGE:
             $validity = json_decode($validity, true);
             $calc_str = '';
             if (isset($validity['m'])) {
                 $calc_str .= $validity['m'] . ' months';
             }
             if (isset($validity['d'])) {
                 $calc_str .= ' ' . $validity['d'] . 'days';
             }
             $to = $calc_str ? strtotime('+' . $calc_str) : time();
             $valid_to = date('Y-m-d', $to);
             break;
         default:
             $valid_to = null;
             // Always valid
     }
     return $valid_to;
 }