check_all_exists($target, ['message', 'type', 'finalized']); $type_converter = new campaign_type_converter(); $type = ( $type_converter ->load_string($target['type']) ->get_enum() ); $id = intval($target['message']); $message = new message($id); $finalized = $this->date_or_null($target['finalized']); $this->target = new campaign($this->id_or_null($target)); $this->target->type = $type; $this->target->message = $message; $this->target->finalized = $finalized; $this->target->test = $target['test']; if ($target['grouped'] !== null) { $this->target->group = new group(intval($target['grouped'])); } return $this; } public function get_array() : array { $this->check_target(); $type_converter = new campaign_type_converter(); $type = ( $type_converter ->load_enum($this->target->type) ->get_string() ); $finalized = $this->string_from_date($this->target->finalized); $target = []; $target['message'] = $this->target->message->get_id(); $target['type'] = $type; $target['finalized'] = $finalized; $target['test'] = $this->target->test; $target['grouped'] = null; if ($this->target->group !== null and $this->target->group->has_id()) { $target['grouped'] = $this->target->group->get_id(); } return $target; } }