diff --git a/Admin/Installer.php b/Admin/Installer.php index b188478..7a33b06 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -46,23 +46,24 @@ class Installer extends InstallerAbstract $dbPool->get('core')->con->prepare( 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'eventmanagement_event` ( `eventmanagement_event_id` int(11) NOT NULL AUTO_INCREMENT, + `eventmanagement_event_name` varchar(255) NOT NULL, `eventmanagement_event_type` tinyint(2) NOT NULL, - `eventmanagement_event_event` int(11) NOT NULL, + `eventmanagement_event_calendar` int(11) NOT NULL, `eventmanagement_event_costs` int(11) NOT NULL, `eventmanagement_event_budget` int(11) NOT NULL, `eventmanagement_event_earnings` int(11) NOT NULL, `eventmanagement_event_created_by` int(11) NOT NULL, `eventmanagement_event_created_at` datetime NOT NULL, PRIMARY KEY (`eventmanagement_event_id`), - KEY `eventmanagement_event_event` (`eventmanagement_event_event`), + KEY `eventmanagement_event_calendar` (`eventmanagement_event_calendar`), KEY `eventmanagement_event_created_by` (`eventmanagement_event_created_by`) )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )->execute(); $dbPool->get('core')->con->prepare( 'ALTER TABLE `' . $dbPool->get('core')->prefix . 'eventmanagement_event` - ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_1` FOREIGN KEY (`eventmanagement_event_event`) REFERENCES `' . $dbPool->get('core')->prefix . 'calendar_event` (`calendar_event_id`), - ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_2` FOREIGN KEY (`eventmanagement_event_created_by`) REFERENCES `' . $dbPool->get('core')->prefix . 'account_id` (`calendar_event_created_by`);' + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_1` FOREIGN KEY (`eventmanagement_event_calendar`) REFERENCES `' . $dbPool->get('core')->prefix . 'calendar` (`calendar_id`), + ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_2` FOREIGN KEY (`eventmanagement_event_created_by`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);' )->execute(); $dbPool->get('core')->con->prepare( diff --git a/Models/Event.php b/Models/Event.php index 62a5de5..ce09c1b 100644 --- a/Models/Event.php +++ b/Models/Event.php @@ -15,7 +15,7 @@ */ namespace Modules\EventManagement\Models; -use Modules\Calendar\Models\Event as CalendarEvent; +use Modules\Calendar\Models\Calendar; use Modules\Tasks\Models\Task; use phpOMS\Datatypes\Exception\InvalidEnumValue; use phpOMS\Localization\Money; @@ -44,7 +44,9 @@ class Event private $type = EventType::DEFAULT; - private $event = null; + private $name = ''; + + private $calendar = null; private $costs = null; @@ -72,33 +74,33 @@ class Event public function __construct(string $name = '') { - $this->event = new CalendarEvent(); - $this->costs = new Money(); - $this->budget = new Money(); - $this->earnings = new Money(); + $this->calendar = new Calendar(); + $this->costs = new Money(); + $this->budget = new Money(); + $this->earnings = new Money(); $this->createdAt = new \DateTime('now'); $this->setName($name); } - public function getEvent() : CalendarEvent + public function getCalendar() : Calendar { - return $this->event; + return $this->calendar; } - public function setName(string $name) + public function setName(string $name) { - $this->event->setName($name); + $this->name = $name; } public function getName() : string { - return $this->event->getName(); + return $this->name; } public function addTask(Task $task) { - if($task->getId() !== 0) { + if ($task->getId() !== 0) { $this->tasks[$task->getId()] = $task; } else { $this->tasks[] = $task; @@ -107,7 +109,7 @@ class Event public function removeTask(int $id) : bool { - if(isset($this->tasks[$id])) { + if (isset($this->tasks[$id])) { unset($this->tasks[$id]); return true; @@ -121,12 +123,12 @@ class Event return $this->tasks[$id] ?? new Task(); } - public function getTasks() : array + public function getTasks() : array { return $this->tasks; } - public function countTasks() : int + public function countTasks() : int { return count($this->tasks); } @@ -138,7 +140,7 @@ class Event public function setType(int $type) { - if(!EventType::isValidValue($type)) { + if (!EventType::isValidValue($type)) { throw new InvalidEnumValue($type); } @@ -150,32 +152,32 @@ class Event return $this->type; } - public function getCosts() : Money + public function getCosts() : Money { return $this->costs; } - public function getBudget() : Money + public function getBudget() : Money { return $this->budget; } - public function getEarnings() : Money + public function getEarnings() : Money { return $this->earnings; } - public function setCosts(Money $costs) + public function setCosts(Money $costs) { $this->costs = $costs; } - public function setBudget(Money $budget) + public function setBudget(Money $budget) { $this->budget = $budget; } - public function setEarnings(Money $earnings) + public function setEarnings(Money $earnings) { $this->earnings = $earnings; } @@ -200,7 +202,7 @@ class Event public function setCreatedAt(\DateTime $createdAt) { $this->createdAt = $createdAt; - $this->event->setCreatedAt($this->createdAt); + $this->calendar->setCreatedAt($this->createdAt); } /** @@ -223,6 +225,6 @@ class Event public function setCreatedBy(int $createdBy) { $this->createdBy = $createdBy; - $this->event->setCreatedBy($this->createdBy); + $this->calendar->setCreatedBy($this->createdBy); } } diff --git a/Models/EventMapper.php b/Models/EventMapper.php index 1763a92..77acbdd 100644 --- a/Models/EventMapper.php +++ b/Models/EventMapper.php @@ -41,14 +41,15 @@ class EventMapper extends DataMapperAbstract * @since 1.0.0 */ protected static $columns = [ - 'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'], - 'eventmanagement_event_type' => ['name' => 'eventmanagement_event_type', 'type' => 'int', 'internal' => 'type'], - 'eventmanagement_event_event' => ['name' => 'eventmanagement_event_event', 'type' => 'int', 'internal' => 'event'], - '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_at' => ['name' => 'eventmanagement_event_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], + 'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'], + 'eventmanagement_event_name' => ['name' => 'eventmanagement_event_name', 'type' => 'string', 'internal' => 'name'], + 'eventmanagement_event_type' => ['name' => 'eventmanagement_event_type', 'type' => 'int', 'internal' => 'type'], + 'eventmanagement_event_calendar' => ['name' => 'eventmanagement_event_calendar', 'type' => 'int', 'internal' => 'calendar'], + '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_at' => ['name' => 'eventmanagement_event_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], ]; /** @@ -57,10 +58,10 @@ class EventMapper extends DataMapperAbstract * @var array * @since 1.0.0 */ - protected static $hasOne = [ - 'event' => [ - 'mapper' => \Modules\Calendar\Models\EventMapper::class, - 'src' => 'eventmanagement_event_event', + protected static $ownsOne = [ + 'calendar' => [ + 'mapper' => \Modules\Calendar\Models\CalendarMapper::class, + 'src' => 'eventmanagement_event_calendar', ], ]; @@ -153,9 +154,9 @@ class EventMapper extends DataMapperAbstract public static function find(...$columns) : Builder { return parent::find(...$columns)->from('account_permission') - ->where('account_permission.account_permission_for', '=', 'calendar_event') - ->where('account_permission.account_permission_id1', '=', 1) - ->where('calendar_event.calendar_event_id', '=', new Column('account_permission.account_permission_id2')) - ->where('account_permission.account_permission_r', '=', 1); + ->where('account_permission.account_permission_for', '=', 'calendar_event') + ->where('account_permission.account_permission_id1', '=', 1) + ->where('calendar_event.calendar_event_id', '=', new Column('account_permission.account_permission_id2')) + ->where('account_permission.account_permission_r', '=', 1); } }