This commit is contained in:
Dennis Eichhorn 2020-03-05 20:35:58 +01:00
parent 2c4fa26fe5
commit b3c041b2cf
11 changed files with 84 additions and 23 deletions

View File

@ -14,11 +14,6 @@
"type": "VARCHAR(100)",
"null": false
},
"country_native": {
"name": "country_native",
"type": "VARCHAR(100)",
"null": false
},
"country_code2": {
"name": "country_code2",
"type": "VARCHAR(2)",
@ -95,9 +90,15 @@
"type": "VARCHAR(100)",
"null": false
},
"language_639_1": {
"name": "language_639_1",
"type": "VARCHAR(2)",
"null": false,
"unique": true
},
"language_639_2T": {
"name": "language_639_2T",
"type": "VARCHAR(2)",
"type": "VARCHAR(3)",
"null": false,
"unique": true
},
@ -108,7 +109,7 @@
},
"language_639_3": {
"name": "language_639_3",
"type": "VARCHAR(3)",
"type": "VARCHAR(10)",
"null": false
}
}
@ -185,7 +186,7 @@
"default": null,
"null": true,
"foreignTable": "language",
"foreignKey": "language_639_2T"
"foreignKey": "language_639_1"
},
"l11n_datetime": {
"name": "l11n_datetime",

View File

@ -67,7 +67,7 @@ final class Installer extends InstallerAbstract
$query = new Builder($con);
$query->prefix($con->getPrefix())
->insert('country_name', 'country_native', 'country_code2', 'country_code3', 'country_numeric')
->insert('country_name', 'country_code2', 'country_code3', 'country_numeric')
->into('country');
$querySqlite = new Builder($sqlite);
@ -75,7 +75,6 @@ final class Installer extends InstallerAbstract
foreach ($countries as $country) {
$query->values(
$country['country_name'] === null ? null : \trim($country['country_name']),
$country['country_name'] === null ? null : \trim($country['country_name']),
$country['country_code2'] === null ? null : \trim($country['country_code2']),
$country['country_code3'] === null ? null : \trim($country['country_code3']),
@ -102,7 +101,7 @@ final class Installer extends InstallerAbstract
$query = new Builder($con);
$query->prefix($con->getPrefix())
->insert('language_name', 'language_native', 'language_639_2T', 'language_639_2B', 'language_639_3')
->insert('language_name', 'language_native', 'language_639_1', 'language_639_2T', 'language_639_2B', 'language_639_3')
->into('language');
$querySqlite = new Builder($sqlite);
@ -112,6 +111,7 @@ final class Installer extends InstallerAbstract
$query->values(
$language['language_name'] === null ? null : \trim($language['language_name']),
$language['language_native'] === null ? null : \trim($language['language_native']),
$language['language_639_1'] === null ? null : \trim($language['language_639_1']),
$language['language_639_2T'] === null ? null : \trim($language['language_639_2T']),
$language['language_639_2B'] === null ? null : \trim($language['language_639_2B']),
$language['language_639_3'] === null ? null : \trim($language['language_639_3'])

View File

@ -26,6 +26,7 @@ use Modules\Admin\Models\GroupPermission;
use Modules\Admin\Models\GroupPermissionMapper;
use Modules\Admin\Models\ModuleStatusUpdateType;
use Modules\Admin\Models\NullAccount;
use phpOMS\Account\AccountStatus;
use phpOMS\Account\AccountType;
use phpOMS\Account\GroupStatus;
@ -313,7 +314,7 @@ final class ApiController extends Controller
private function createGroupFromRequest(RequestAbstract $request) : Group
{
$group = new Group();
$group->setCreatedBy($request->getHeader()->getAccount());
$group->setCreatedBy(new NullAccount($request->getHeader()->getAccount()));
$group->setName((string) ($request->getData('name') ?? ''));
$group->setStatus((int) ($request->getData('status') ?? GroupStatus::INACTIVE));
$group->setDescription(Markdown::parse((string) ($request->getData('description') ?? '')));

View File

@ -35,10 +35,10 @@ class Group extends \phpOMS\Account\Group
/**
* Created by.
*
* @var int
* @var Account
* @since 1.0.0
*/
protected $createdBy = 0;
protected Account $createdBy;
/**
* Group raw description.
@ -51,7 +51,7 @@ class Group extends \phpOMS\Account\Group
/**
* Accounts
*
* @var Account[]|int[]
* @var Account[]
* @since 1.0.0
*/
protected array $accounts = [];
@ -65,7 +65,8 @@ class Group extends \phpOMS\Account\Group
*/
public function __construct(string $name = '')
{
$this->createdAt = new \DateTime();
$this->createdBy = new NullAccount();
$this->createdAt = new \DateTime('now');
$this->setName($name);
}
@ -78,17 +79,17 @@ class Group extends \phpOMS\Account\Group
*/
public function getCreatedAt() : \DateTime
{
return $this->createdAt ?? new \DateTime('NOW');
return $this->createdAt;
}
/**
* Get created by.
*
* @return int|\phpOMS\Account\Account
* @return Account
*
* @since 1.0.0
*/
public function getCreatedBy()
public function getCreatedBy() : Account
{
return $this->createdBy;
}
@ -96,13 +97,13 @@ class Group extends \phpOMS\Account\Group
/**
* Set created by
*
* @param mixed $createdBy Group created by
* @param Account $createdBy Group created by
*
* @return void
*
* @since 1.0.0
*/
public function setCreatedBy($createdBy) : void
public function setCreatedBy(Account $createdBy) : void
{
$this->createdBy = $createdBy;
}
@ -136,7 +137,7 @@ class Group extends \phpOMS\Account\Group
/**
* Get accounts
*
* @return array Accounts
* @return Account[] Accounts
*
* @since 1.0.0
*/

View File

@ -100,16 +100,19 @@ final class LocalizationMapper extends DataMapperAbstract
'mapper' => CountryMapper::class,
'self' => 'l11n_country',
'by' => 'code2',
'column' => 'code2',
],
'language' => [
'mapper' => LanguageMapper::class,
'self' => 'l11n_language',
'by' => 'code2',
'column' => 'code2',
],
'currency' => [
'mapper' => CurrencyMapper::class,
'self' => 'l11n_currency',
'by' => 'code',
'column' => 'code',
],
];

View File

@ -98,7 +98,7 @@ class Module
*/
public function getCreatedAt() : \DateTime
{
return $this->createdAt ?? new \DateTime('NOW');
return $this->createdAt;
}
/**

View File

@ -24,4 +24,15 @@ namespace Modules\Admin\Models;
*/
final class NullAccount extends Account
{
/**
* 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\Admin\Models;
*/
final class NullAccountPermission extends AccountPermission
{
/**
* 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\Admin\Models;
*/
final class NullAddress extends Address
{
/**
* 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\Admin\Models;
*/
final class NullGroup extends Group
{
/**
* 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\Admin\Models;
*/
final class NullGroupPermission extends GroupPermission
{
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
}