This commit is contained in:
Dennis Eichhorn 2020-03-05 20:35:58 +01:00
parent 99c4d61353
commit bd367b3b60
5 changed files with 84 additions and 43 deletions

View File

@ -24,4 +24,15 @@ namespace Modules\Helper\Models;
*/ */
final class NullReport extends Report final class NullReport extends Report
{ {
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
} }

View File

@ -24,4 +24,15 @@ namespace Modules\Helper\Models;
*/ */
final class NullTemplate extends Template final class NullTemplate extends Template
{ {
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
} }

View File

@ -14,6 +14,12 @@ declare(strict_types=1);
namespace Modules\Helper\Models; namespace Modules\Helper\Models;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\NullAccount;
use Modules\Helper\Admin\Install\Media;
use Modules\Media\Models\Collection;
use Modules\Media\Models\NullCollection;
/** /**
* Report model. * Report model.
* *
@ -30,7 +36,7 @@ class Report implements \JsonSerializable
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private int $id = 0; protected int $id = 0;
/** /**
* Report status. * Report status.
@ -75,26 +81,26 @@ class Report implements \JsonSerializable
/** /**
* Report created by. * Report created by.
* *
* @var int|\Modules\Admin\Models\Account * @var Account
* @since 1.0.0 * @since 1.0.0
*/ */
private $createdBy = 0; private Account $createdBy;
/** /**
* Report template. * Report template.
* *
* @var int|\Modules\Media\Models\Media * @var Template
* @since 1.0.0 * @since 1.0.0
*/ */
private $template = 0; private Template $template;
/** /**
* Report source. * Report source.
* *
* @var int|\Modules\Media\Models\Collection * @var Collection
* @since 1.0.0 * @since 1.0.0
*/ */
private $source = 0; private Collection $source;
/** /**
* Constructor. * Constructor.
@ -103,7 +109,10 @@ class Report implements \JsonSerializable
*/ */
public function __construct() public function __construct()
{ {
$this->createdBy = new NullAccount();
$this->createdAt = new \DateTime('now'); $this->createdAt = new \DateTime('now');
$this->template = new NullTemplate();
$this->source = new NullCollection();
} }
/** /**
@ -231,17 +240,17 @@ class Report implements \JsonSerializable
*/ */
public function getCreatedAt() : \DateTime public function getCreatedAt() : \DateTime
{ {
return $this->createdAt ?? new \DateTime('now'); return $this->createdAt;
} }
/** /**
* Get creator * Get creator
* *
* @return int|\phpOMS\Account\Account * @return Account
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function getCreatedBy() public function getCreatedBy() : Account
{ {
return $this->createdBy; return $this->createdBy;
} }
@ -249,13 +258,13 @@ class Report implements \JsonSerializable
/** /**
* Set creator * Set creator
* *
* @param mixed $creator Created by * @param Account $creator Created by
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setCreatedBy($creator) : void public function setCreatedBy(Account $creator) : void
{ {
$this->createdBy = $creator; $this->createdBy = $creator;
} }
@ -263,11 +272,11 @@ class Report implements \JsonSerializable
/** /**
* Get template this report belongs to * Get template this report belongs to
* *
* @return mixed * @return Template
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function getTemplate() public function getTemplate() : Template
{ {
return $this->template; return $this->template;
} }
@ -275,13 +284,13 @@ class Report implements \JsonSerializable
/** /**
* Set template this report belongs to * Set template this report belongs to
* *
* @param mixed $template Report template * @param Template $template Report template
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setTemplate($template) : void public function setTemplate(Template $template) : void
{ {
$this->template = $template; $this->template = $template;
} }
@ -289,13 +298,13 @@ class Report implements \JsonSerializable
/** /**
* Set source media for the report * Set source media for the report
* *
* @param \Modules\Media\Models\Collection|int $source Report source * @param Collection $source Report source
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setSource($source) : void public function setSource(Collection $source) : void
{ {
$this->source = $source; $this->source = $source;
} }
@ -303,11 +312,11 @@ class Report implements \JsonSerializable
/** /**
* Get source media for the report * Get source media for the report
* *
* @return \Modules\Media\Models\Collection|int * @return Collection
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function getSource() public function getSource() : Collection
{ {
return $this->source; return $this->source;
} }

View File

@ -41,7 +41,7 @@ final class ReportMapper extends DataMapperAbstract
'helper_report_desc_raw' => ['name' => 'helper_report_desc_raw', 'type' => 'string', 'internal' => 'descriptionRaw'], 'helper_report_desc_raw' => ['name' => 'helper_report_desc_raw', 'type' => 'string', 'internal' => 'descriptionRaw'],
'helper_report_media' => ['name' => 'helper_report_media', 'type' => 'int', 'internal' => 'source'], 'helper_report_media' => ['name' => 'helper_report_media', 'type' => 'int', 'internal' => 'source'],
'helper_report_template' => ['name' => 'helper_report_template', 'type' => 'int', 'internal' => 'template'], 'helper_report_template' => ['name' => 'helper_report_template', 'type' => 'int', 'internal' => 'template'],
'helper_report_creator' => ['name' => 'helper_report_creator', 'type' => 'int', 'internal' => 'createdBy'], 'helper_report_creator' => ['name' => 'helper_report_creator', 'type' => 'int', 'internal' => 'createdBy', 'readonly' => true],
'helper_report_created' => ['name' => 'helper_report_created', 'type' => 'DateTime', 'internal' => 'createdAt', 'readonly' => true], 'helper_report_created' => ['name' => 'helper_report_created', 'type' => 'DateTime', 'internal' => 'createdAt', 'readonly' => true],
]; ];
@ -57,7 +57,7 @@ final class ReportMapper extends DataMapperAbstract
'self' => 'helper_report_media', 'self' => 'helper_report_media',
], ],
'template' => [ 'template' => [
'mapper' => \Modules\Helper\Models\TemplateMapper::class, 'mapper' => TemplateMapper::class,
'self' => 'helper_report_template', 'self' => 'helper_report_template',
], ],
]; ];

View File

@ -14,6 +14,13 @@ declare(strict_types=1);
namespace Modules\Helper\Models; namespace Modules\Helper\Models;
use Modules\Admin\Models\Account;
use Modules\Admin\Models\NullAccount;
use Modules\Media\Models\Collection;
use Modules\Media\Models\NullCollection;
use Modules\Organization\Models\NullUnit;
use Modules\Organization\Models\Unit;
/** /**
* Template model. * Template model.
* *
@ -30,15 +37,15 @@ class Template implements \JsonSerializable
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private int $id = 0; protected int $id = 0;
/** /**
* Unit. * Unit.
* *
* @var null|int|\Modules\Organization\Models\Unit * @var Unit
* @since 1.0.0 * @since 1.0.0
*/ */
private $unit = null; private Unit $unit;
/** /**
* Template status. * Template status.
@ -99,18 +106,18 @@ class Template implements \JsonSerializable
/** /**
* Template created by. * Template created by.
* *
* @var int|\Modules\Admin\Models\Account * @var Account
* @since 1.0.0 * @since 1.0.0
*/ */
private $createdBy = 0; private Account $createdBy;
/** /**
* Template source. * Template source.
* *
* @var int|\Modules\Media\Models\Media * @var Collection
* @since 1.0.0 * @since 1.0.0
*/ */
private $source = 0; private Collection $source;
/** /**
* Expected files. * Expected files.
@ -136,6 +143,9 @@ class Template implements \JsonSerializable
public function __construct() public function __construct()
{ {
$this->createdAt = new \DateTime('now'); $this->createdAt = new \DateTime('now');
$this->unit = new NullUnit();
$this->source = new NullCollection();
$this->createdBy = new NullAccount();
} }
/** /**
@ -153,11 +163,11 @@ class Template implements \JsonSerializable
/** /**
* Get unit this template belogns to * Get unit this template belogns to
* *
* @return null|int|\Modules\Organization\Models\Unit * @return Unit
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function getUnit() public function getUnit() : Unit
{ {
return $this->unit; return $this->unit;
} }
@ -167,13 +177,13 @@ class Template implements \JsonSerializable
* *
* Set the unit * Set the unit
* *
* @param int $unit Unit * @param Unit $unit Unit
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setUnit(int $unit) : void public function setUnit(Unit $unit) : void
{ {
$this->unit = $unit; $this->unit = $unit;
} }
@ -275,13 +285,13 @@ class Template implements \JsonSerializable
/** /**
* Set source media * Set source media
* *
* @param int $source Source * @param Collection $source Source
* *
* @return mixed * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setSource($source) public function setSource(Collection $source) : void
{ {
$this->source = $source; $this->source = $source;
} }
@ -289,11 +299,11 @@ class Template implements \JsonSerializable
/** /**
* Get source media * Get source media
* *
* @return mixed * @return Collection
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function getSource() public function getSource() : Collection
{ {
return $this->source; return $this->source;
} }
@ -301,13 +311,13 @@ class Template implements \JsonSerializable
/** /**
* Set creator * Set creator
* *
* @param mixed $createdBy Creator * @param Account $createdBy Creator
* *
* @return void * @return void
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function setCreatedBy($createdBy) : void public function setCreatedBy(Account $createdBy) : void
{ {
$this->createdBy = $createdBy; $this->createdBy = $createdBy;
} }
@ -315,11 +325,11 @@ class Template implements \JsonSerializable
/** /**
* Get creator * Get creator
* *
* @return int|\phpOMS\Account\Account * @return Account
* *
* @since 1.0.0 * @since 1.0.0
*/ */
public function getCreatedBy() public function getCreatedBy() : Account
{ {
return $this->createdBy; return $this->createdBy;
} }
@ -333,7 +343,7 @@ class Template implements \JsonSerializable
*/ */
public function getCreatedAt() : \DateTime public function getCreatedAt() : \DateTime
{ {
return $this->createdAt ?? new \DateTime('now'); return $this->createdAt;
} }
/** /**