From 94a728cb6b37b952f3d6ee0b3eb485bb27d2b9fd Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Thu, 5 Mar 2020 20:35:58 +0100 Subject: [PATCH] fixes Orange-Management/phpOMS#224 and fixes Orange-Management/phpOMS#212 --- Models/Event.php | 15 +++++++++------ Models/EventMapper.php | 16 +++++++++++++++- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Models/Event.php b/Models/Event.php index 508949e..b4df932 100644 --- a/Models/Event.php +++ b/Models/Event.php @@ -14,6 +14,8 @@ declare(strict_types=1); namespace Modules\EventManagement\Models; +use Modules\Admin\Models\Account; +use Modules\Admin\Models\NullAccount; use Modules\Calendar\Models\Calendar; use Modules\Tasks\Models\Task; use phpOMS\Localization\Money; @@ -85,10 +87,10 @@ class Event /** * Creator. * - * @var int|\Modules\Admin\Models\Account + * @var Account * @since 1.0.0 */ - private $createdBy = 0; + private Account $createdBy; /** * Constructor. @@ -106,6 +108,7 @@ class Event $this->budget = new Money(); $this->earnings = new Money(); $this->createdAt = new \DateTime('now'); + $this->createdBy = new NullAccount(); $this->setName($name); } @@ -515,11 +518,11 @@ class Event /** * Get creator * - * @return int|\Modules\Admin\Models\Account + * @return Account * * @since 1.0.0 */ - public function getCreatedBy() + public function getCreatedBy() : Account { return $this->createdBy; } @@ -527,11 +530,11 @@ class Event /** * Set creator * - * @param int $createdBy Creator + * @param Account $createdBy Creator * * @since 1.0.0 */ - public function setCreatedBy(int $createdBy) : void + public function setCreatedBy(Account $createdBy) : void { $this->createdBy = $createdBy; } diff --git a/Models/EventMapper.php b/Models/EventMapper.php index 34e8c7b..b3e9cfc 100644 --- a/Models/EventMapper.php +++ b/Models/EventMapper.php @@ -14,6 +14,7 @@ declare(strict_types=1); namespace Modules\EventManagement\Models; +use Modules\Admin\Models\AccountMapper; use Modules\Media\Models\MediaMapper; use Modules\Tasks\Models\TaskMapper; use phpOMS\DataStorage\Database\DataMapperAbstract; @@ -47,7 +48,7 @@ final class EventMapper extends DataMapperAbstract 'eventmanagement_event_costs' => ['name' => 'eventmanagement_event_costs', 'type' => 'Serializable', 'internal' => 'costs'], 'eventmanagement_event_budget' => ['name' => 'eventmanagement_event_budget', 'type' => 'Serializable', 'internal' => 'budget'], 'eventmanagement_event_earnings' => ['name' => 'eventmanagement_event_earnings', 'type' => 'Serializable', 'internal' => 'earnings'], - 'eventmanagement_event_created_by' => ['name' => 'eventmanagement_event_created_by', 'type' => 'int', 'internal' => 'createdBy'], + 'eventmanagement_event_created_by' => ['name' => 'eventmanagement_event_created_by', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true], 'eventmanagement_event_created_at' => ['name' => 'eventmanagement_event_created_at', 'type' => 'DateTime', 'internal' => 'createdAt', 'readonly' => true], ]; @@ -85,6 +86,19 @@ final class EventMapper extends DataMapperAbstract ], ]; + /** + * Belongs to. + * + * @var array + * @since 1.0.0 + */ + protected static array $belongsTo = [ + 'createdBy' => [ + 'mapper' => AccountMapper::class, + 'self' => 'eventmanagement_event_created_by', + ], + ]; + /** * Primary table. *