string $label). * Ex: array(123 => 'Phone Call', 456 => 'Meeting'). */ public function getValueLabels(); /** * Get a list of status options. * * @param string|int $value * The list of status options may be contingent upon the selected filter value. * This is the selected filter value. * @return array * Array(string $value => string $label). * Ex: Array(123 => 'Completed', 456 => 'Scheduled'). */ public function getStatusLabels($value); /** * Get a list of available date fields. * * @return array * Array(string $fieldName => string $fieldLabel). */ public function getDateFields(); /** * Get a list of recipient types. * * Note: A single schedule may filter on *zero* or *one* recipient types. * When an admin chooses a value, it's stored in $schedule->recipient. * * @return array * array(string $value => string $label). * Ex: array('assignee' => 'Activity Assignee'). */ public function getRecipientTypes(); /** * Get a list of recipients which match the given type. * * Note: A single schedule may filter on *multiple* recipients. * When an admin chooses value(s), it's stored in $schedule->recipient_listing. * * @param string $recipientType * Ex: 'participant_role'. * @return array * Array(mixed $name => string $label). * Ex: array(1 => 'Attendee', 2 => 'Volunteer'). * @see getRecipientTypes */ public function getRecipientListing($recipientType); /** * Determine whether a schedule based on this mapping is sufficiently * complete. * * @param \CRM_Core_DAO_ActionSchedule $schedule * @return array * Array (string $code => string $message). * List of error messages. */ public function validateSchedule($schedule); /** * Generate a query to locate contacts who match the given * schedule. * * @param \CRM_Core_DAO_ActionSchedule $schedule * @param string $phase * See, e.g., RecipientBuilder::PHASE_RELATION_FIRST. * @param array $defaultParams * Default parameters that should be included with query. * @return \CRM_Utils_SQL_Select * @see RecipientBuilder */ public function createQuery($schedule, $phase, $defaultParams); /** * Determine whether a schedule based on this mapping should * reset the reminder state if the trigger date changes. * * @return bool * * @param \CRM_Core_DAO_ActionSchedule $schedule */ public function resetOnTriggerDateChange($schedule); }