4 +--------------------------------------------------------------------+
5 | Copyright CiviCRM LLC. All rights reserved. |
7 | This work is published under the GNU AGPLv3 license with some |
8 | permitted exceptions and without any warranty. For full license |
9 | and copyright information, see https://civicrm.org/licensing |
10 +--------------------------------------------------------------------+
16 * @copyright CiviCRM LLC https://civicrm.org/licensing
22 namespace Civi\Api4\Service\Spec\Provider
;
24 use Civi\Api4\Service\Spec\FieldSpec
;
25 use Civi\Api4\Service\Spec\RequestSpec
;
27 class EventCreationSpecProvider
implements Generic\SpecProviderInterface
{
32 public function modifySpec(RequestSpec
$spec) {
33 $spec->getFieldByName('event_type_id')->setRequiredIf('empty($values.template_id)');
34 $spec->getFieldByName('title')->setRequiredIf('empty($values.is_template)');
35 $spec->getFieldByName('start_date')->setRequiredIf('empty($values.is_template)');
36 $spec->getFieldByName('template_title')->setRequiredIf('!empty($values.is_template)');
38 $template_id = new FieldSpec('template_id', 'Event', 'Integer');
40 ->setTitle('Template Id')
41 ->setDescription('Template on which to base this new event');
42 $spec->addFieldSpec($template_id);
48 public function applies($entity, $action) {
49 return $entity === 'Event' && $action === 'create';