diff --git a/Models/Group.php b/Models/Group.php index a9597d3..47a0a72 100644 --- a/Models/Group.php +++ b/Models/Group.php @@ -41,6 +41,18 @@ class Group extends \phpOMS\Account\Group */ protected $createdBy = 0; + /** + * Constructor + * + * @since 1.0.0 + */ + public function __construct() + { + $this->createdAt = new \DateTime(); + + parent::__construct(); + } + /** * Get created at. * diff --git a/Models/Module.php b/Models/Module.php new file mode 100644 index 0000000..8e6bb8c --- /dev/null +++ b/Models/Module.php @@ -0,0 +1,222 @@ + + */ + public function __construct() + { + $this->createdAt = new \DateTime('now'); + } + + /** + * Get group id. + * + * @return int + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getId() : int + { + return $this->id; + } + + /** + * Get created at. + * + * @return \DateTime + * + * @since 1.0.0 + */ + public function getCreatedAt() : \DateTime + { + return $this->createdAt ?? new \DateTime('NOW'); + } + + /** + * Get group name. + * + * @return string + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getName() : string + { + return $this->name; + } + + /** + * Set group name. + * + * @param string $name Group name + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setName(string $name) /* : void */ + { + $this->name = $name; + } + + /** + * Get group description. + * + * @return string + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getDescription() : string + { + return $this->description; + } + + /** + * Set group description. + * + * @param string $description Group description + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setDescription(string $description) /* : void */ + { + $this->description = $description; + } + + /** + * Get group status. + * + * @return int Group status + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getStatus() : int + { + return $this->status; + } + + /** + * Set group status. + * + * @param int $status Group status + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setStatus(int $status) /* : void */ + { + // todo: check valid + $this->status = $status; + } + + /** + * Get string representation. + * + * @return string + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function __toString() + { + return json_encode($this->toArray()); + } + + /** + * Json serialize. + * + * @return string + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function jsonSerialize() + { + return $this->toArray(); + } + + /** + * {@inheritdoc} + */ + public function toArray() : array + { + return [ + 'id' => $this->id, + 'name' => $this->name, + 'description' => $this->description, + 'createdAt' => $this->createdAt->format('Y-m-d H:i:s'), + ]; + } +} diff --git a/Models/ModuleMapper.php b/Models/ModuleMapper.php new file mode 100644 index 0000000..4b10e26 --- /dev/null +++ b/Models/ModuleMapper.php @@ -0,0 +1,76 @@ + ['name' => 'module_id', 'type' => 'int', 'internal' => 'id'], + 'module_name' => ['name' => 'module_name', 'type' => 'string', 'internal' => 'name'], + 'module_status' => ['name' => 'module_status', 'type' => 'int', 'internal' => 'status'], + 'module_desc' => ['name' => 'module_desc', 'type' => 'string', 'internal' => 'description'], + 'module_created' => ['name' => 'module_created', 'type' => 'DateTime', 'internal' => 'createdAt'], + ]; + + /** + * Primary table. + * + * @var string + * @since 1.0.0 + */ + protected static $table = 'group'; + + /** + * Primary field name. + * + * @var string + * @since 1.0.0 + */ + protected static $primaryField = 'group_id'; + + /** + * Created at column + * + * @var string + * @since 1.0.0 + */ + protected static $createdAt = 'group_created'; + + /** + * Get object. + * + * @param mixed $primaryKey Key + * @param int $relations Load relations + * @param mixed $fill Object to fill + * + * @return Group + * + * @since 1.0.0 + */ + public static function get($primaryKey, int $relations = RelationType::ALL, $fill = null) + { + return parent::get($primaryKey, $relations, $fill); + } +}