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

View File

@ -67,7 +67,7 @@ final class Installer extends InstallerAbstract
$query = new Builder($con); $query = new Builder($con);
$query->prefix($con->getPrefix()) $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'); ->into('country');
$querySqlite = new Builder($sqlite); $querySqlite = new Builder($sqlite);
@ -75,7 +75,6 @@ final class Installer extends InstallerAbstract
foreach ($countries as $country) { foreach ($countries as $country) {
$query->values( $query->values(
$country['country_name'] === null ? null : \trim($country['country_name']),
$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_code2'] === null ? null : \trim($country['country_code2']),
$country['country_code3'] === null ? null : \trim($country['country_code3']), $country['country_code3'] === null ? null : \trim($country['country_code3']),
@ -102,7 +101,7 @@ final class Installer extends InstallerAbstract
$query = new Builder($con); $query = new Builder($con);
$query->prefix($con->getPrefix()) $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'); ->into('language');
$querySqlite = new Builder($sqlite); $querySqlite = new Builder($sqlite);
@ -112,6 +111,7 @@ final class Installer extends InstallerAbstract
$query->values( $query->values(
$language['language_name'] === null ? null : \trim($language['language_name']), $language['language_name'] === null ? null : \trim($language['language_name']),
$language['language_native'] === null ? null : \trim($language['language_native']), $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_2T'] === null ? null : \trim($language['language_639_2T']),
$language['language_639_2B'] === null ? null : \trim($language['language_639_2B']), $language['language_639_2B'] === null ? null : \trim($language['language_639_2B']),
$language['language_639_3'] === null ? null : \trim($language['language_639_3']) $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\GroupPermissionMapper;
use Modules\Admin\Models\ModuleStatusUpdateType; use Modules\Admin\Models\ModuleStatusUpdateType;
use Modules\Admin\Models\NullAccount;
use phpOMS\Account\AccountStatus; use phpOMS\Account\AccountStatus;
use phpOMS\Account\AccountType; use phpOMS\Account\AccountType;
use phpOMS\Account\GroupStatus; use phpOMS\Account\GroupStatus;
@ -313,7 +314,7 @@ final class ApiController extends Controller
private function createGroupFromRequest(RequestAbstract $request) : Group private function createGroupFromRequest(RequestAbstract $request) : Group
{ {
$group = new Group(); $group = new Group();
$group->setCreatedBy($request->getHeader()->getAccount()); $group->setCreatedBy(new NullAccount($request->getHeader()->getAccount()));
$group->setName((string) ($request->getData('name') ?? '')); $group->setName((string) ($request->getData('name') ?? ''));
$group->setStatus((int) ($request->getData('status') ?? GroupStatus::INACTIVE)); $group->setStatus((int) ($request->getData('status') ?? GroupStatus::INACTIVE));
$group->setDescription(Markdown::parse((string) ($request->getData('description') ?? ''))); $group->setDescription(Markdown::parse((string) ($request->getData('description') ?? '')));

View File

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

View File

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

View File

@ -98,7 +98,7 @@ class Module
*/ */
public function getCreatedAt() : \DateTime 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 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 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 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 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 final class NullGroupPermission extends GroupPermission
{ {
/**
* Constructor
*
* @param int $id Model id
*
* @since 1.0.0
*/
public function __construct(int $id = 0)
{
$this->id = $id;
}
} }