<?phpnamespace App\Model;class AutoresponderAdvRule implements \JsonSerializable{ const NOT_ACTIVE_PREFIX = '_NA_'; private $id; private $idAutoresponder; private $userName; private $userDomain; private $fromName; private $fromEmail; private $subject; // type of subject prefix (Re: / Odp: / Reception of message: / user's prefix) or null if user has his own subject (kept in ownSubject variable) private $ownSubject; // user'a own subject private $message; private $copy; private $copyLines; private $activationType; private $activeFrom; private $activeFromHour; private $activeFromMinute; private $activeTo; private $activeToHour; private $activeToMinute; private $periodWeeks; private $periodDays; private $periodHours; private $messagesLimit; private $active; private $activationHour; private $activationMinute; private $activeOnce; private $activeOnceConsumed; private $activeDay1; private $activeDay2; private $activeDay3; private $activeDay4; private $activeDay5; private $activeDay6; private $activeDay7; private $ruleType; /** * @return mixed */ public function getIdAutoresponder() { return $this->idAutoresponder; } public function getActivationHour() { return $this->activationHour; } public function getActivationMinute() { return $this->activationMinute; } public function getActiveOnce() { return $this->activeOnce; } public function getActiveOnceConsumed() { return $this->activeOnceConsumed; } public function getActiveDay1() { return $this->activeDay1; } public function getActiveDay2() { return $this->activeDay2; } public function getActiveDay3() { return $this->activeDay3; } public function getActiveDay4() { return $this->activeDay4; } public function getActiveDay5() { return $this->activeDay5; } public function getActiveDay6() { return $this->activeDay6; } public function getActiveDay7() { return $this->activeDay7; } public function getRuleType() { return $this->ruleType; } public function getMessage() { return $this->message; } public function setActivationHour($activationHour) { $this->activationHour = $activationHour; } public function setActivationMinute($activationMinute) { $this->activationMinute = $activationMinute; } public function setActiveOnce($activeOnce) { $this->activeOnce = $activeOnce; } public function setActiveOnceConsumed($activeOnceConsumed) { $this->activeOnceConsumed = $activeOnceConsumed; } public function setActiveDay1($activeDay1) { $this->activeDay1 = $activeDay1; } public function setActiveDay2($activeDay2) { $this->activeDay2 = $activeDay2; } public function setActiveDay3($activeDay3) { $this->activeDay3 = $activeDay3; } public function setActiveDay4($activeDay4) { $this->activeDay4 = $activeDay4; } public function setActiveDay5($activeDay5) { $this->activeDay5 = $activeDay5; } public function setActiveDay6($activeDay6) { $this->activeDay6 = $activeDay6; } public function setActiveDay7($activeDay7) { $this->activeDay7 = $activeDay7; } public function setRuleType($ruleType) { $this->ruleType = $ruleType; } public function setMessage($message) { $this->message = $message; } /** * @return mixed */ public function getActiveFromHour() { return $this->activeFromHour; } /** * @return mixed */ public function getActiveFromMinute() { return $this->activeFromMinute; } /** * @return mixed */ public function getActiveToHour() { return $this->activeToHour; } /** * @return mixed */ public function getActiveToMinute() { return $this->activeToMinute; } /** * @param mixed $activeFromHour */ public function setActiveFromHour($activeFromHour) { $this->activeFromHour = $activeFromHour; } /** * @param mixed $activeFromMinute */ public function setActiveFromMinute($activeFromMinute) { $this->activeFromMinute = $activeFromMinute; } /** * @param mixed $activeToHour */ public function setActiveToHour($activeToHour) { $this->activeToHour = $activeToHour; } /** * @param mixed $activeToMinute */ public function setActiveToMinute($activeToMinute) { $this->activeToMinute = $activeToMinute; } public function __construct() { $this->active = false; } public function getId() : int { return $this->id; } public function setId($id): self { $this->id = $id; return $this; } public function getUserName(): ?string { return $this->userName; } public function setUserName(string $userName): self { $this->userName = $userName; return $this; } public function getUserDomain(): ?string { return $this->userDomain; } public function setUserDomain(string $userDomain): self { $this->userDomain = $userDomain; return $this; } public function getFromName(): ?string { return $this->fromName; } public function setFromName(string $fromName): self { $this->fromName = $fromName; return $this; } public function getFromEmail(): ?string { return $this->fromEmail; } public function setFromEmail(string $fromEmail): self { $this->fromEmail = $fromEmail; return $this; } public function getSubject(): ?string { return $this->subject; } public function setSubject(string $subject): self { $this->subject = $subject; return $this; } public function getOwnSubject(): ?string { return $this->ownSubject; } public function setOwnSubject(string $subject): self { $this->ownSubject = $subject; return $this; } public function getCopy(): ?bool { return $this->copy; } public function setCopy(bool $copy): self { $this->copy = $copy; return $this; } public function getCopyLines(): ?int { return $this->copyLines; } public function setCopyLines(int $copyLines): self { $this->copyLines = $copyLines; return $this; } public function getActivationType(): ?string { return $this->activationType; } public function setActivationType(string $activationType): self { $this->activationType = $activationType; return $this; } public function getActiveFrom(): ?\DateTime { return $this->activeFrom; } public function setActiveFrom(?\DateTime $activeFrom): self { $this->activeFrom = $activeFrom; return $this; } public function getActiveTo(): ?\DateTime { return $this->activeTo; } public function setActiveTo(?\DateTime $activeTo): self { $this->activeTo = $activeTo; return $this; } public function getPeriodWeeks(): ?int { return $this->periodWeeks; } public function setPeriodWeeks(int $periodWeeks): self { $this->periodWeeks = $periodWeeks; return $this; } public function getPeriodDays(): ?int { return $this->periodDays; } public function setPeriodDays(int $periodDays): self { $this->periodDays = $periodDays; return $this; } public function getPeriodHours(): ?int { return $this->periodHours; } public function setPeriodHours(int $periodHours): self { $this->periodHours = $periodHours; return $this; } public function getMessagesLimit(): ?int { return $this->messagesLimit; } public function setMessagesLimit(int $messagesLimit): self { $this->messagesLimit = $messagesLimit; return $this; } public function getActive(): ?bool { return $this->active; } public function setActive(bool $active): self { $this->active = $active; return $this; } public function timeLimit() { return ($this->periodWeeks * 7 * 24 + $this->periodDays * 24 + $this->periodHours) * 3600; } public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } public function getActiveFromWithMinutes() { $af = $this->getActiveFrom(); $af->setTime($this->getActiveFromHour(), $this->getActiveFromMinute()); return $af; } public function getActiveToWithMinutes() { $at = $this->getActiveTo(); $at->setTime($this->getActiveToHour(), $this->getActiveToMinute()); return $at; } public static function timelimitSplit(int $timelimit) : Array { $hours = $timelimit / 3600; $days = 0; $weeks = 0; if($hours >= 24) { $days = (int) ($hours / 24); } if($days >= 7) { $weeks = (int)($days / 7); $days = $days - ($weeks * 7); } $hours = $hours - ($days * 24) - ($weeks * 24 * 7); $arr = []; $arr['weeks'] = $weeks; $arr['days'] = $days; $arr['hours'] = $hours; return $arr; } }