From 38ff0c89c3c586f1b5f7f8d4964d085354d2510f Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 18 Oct 2020 20:52:19 +0200 Subject: [PATCH] fix the address type (db and model) --- Admin/Install/db.json | 34 +++++++++++++++----- Models/Address.php | 67 ++++++++++++++++++++++++++++++++++++++++ Models/AddressMapper.php | 10 ++++-- 3 files changed, 101 insertions(+), 10 deletions(-) diff --git a/Admin/Install/db.json b/Admin/Install/db.json index 9f7c421..852e323 100755 --- a/Admin/Install/db.json +++ b/Admin/Install/db.json @@ -42,8 +42,18 @@ "primary": true, "autoincrement": true }, - "address_street": { - "name": "address_street", + "address_name": { + "name": "address_name", + "type": "VARCHAR(255)", + "null": false + }, + "address_addition": { + "name": "address_addition", + "type": "VARCHAR(255)", + "null": false + }, + "address_address": { + "name": "address_address", "type": "VARCHAR(255)", "null": false }, @@ -55,7 +65,8 @@ "address_state": { "name": "address_state", "type": "VARCHAR(255)", - "null": false + "null": true, + "default": null }, "address_city": { "name": "address_city", @@ -64,9 +75,16 @@ }, "address_country": { "name": "address_country", - "type": "INT", + "type": "VARCHAR(2)", + "null": true, + "default": null, "foreignTable": "country", - "foreignKey": "country_id" + "foreignKey": "country_code2" + }, + "address_type": { + "name": "address_type", + "type": "INT", + "null": false } } }, @@ -615,7 +633,7 @@ }, "account_name1": { "name": "account_name1", - "type": "VARCHAR(50)", + "type": "VARCHAR(255)", "null": false, "annotations": { "gdpr": true @@ -623,7 +641,7 @@ }, "account_name2": { "name": "account_name2", - "type": "VARCHAR(50)", + "type": "VARCHAR(255)", "null": false, "annotations": { "gdpr": true @@ -631,7 +649,7 @@ }, "account_name3": { "name": "account_name3", - "type": "VARCHAR(50)", + "type": "VARCHAR(255)", "null": false, "annotations": { "gdpr": true diff --git a/Models/Address.php b/Models/Address.php index c761742..4c30c5e 100755 --- a/Models/Address.php +++ b/Models/Address.php @@ -26,4 +26,71 @@ use phpOMS\Stdlib\Base\Location; */ class Address extends Location { + /** + * Name. + * + * @var string + * @since 1.0.0 + */ + protected string $name = ''; + + /** + * Addition. + * + * @var string + * @since 1.0.0 + */ + protected string $addition = ''; + + /** + * Get name + * + * @return string + * + * @since 1.0.0 + */ + public function getName() : string + { + return $this->name; + } + + /** + * Set name + * + * @param string $name Name + * + * @return void + * + * @since 1.0.0 + */ + public function setName(string $name) : void + { + $this->name = $name; + } + + /** + * Get addition + * + * @return string + * + * @since 1.0.0 + */ + public function getAddition() : string + { + return $this->addition; + } + + /** + * Set addition + * + * @param string $addition Addition + * + * @return void + * + * @since 1.0.0 + */ + public function setAddition(string $addition) : void + { + $this->addition = $addition; + } } diff --git a/Models/AddressMapper.php b/Models/AddressMapper.php index 3ab59ed..c1ac184 100755 --- a/Models/AddressMapper.php +++ b/Models/AddressMapper.php @@ -35,11 +35,14 @@ final class AddressMapper extends DataMapperAbstract */ protected static array $columns = [ 'address_id' => ['name' => 'address_id', 'type' => 'int', 'internal' => 'id'], - 'address_street' => ['name' => 'address_street', 'type' => 'string', 'internal' => 'address'], + 'address_name' => ['name' => 'address_name', 'type' => 'string', 'internal' => 'name'], + 'address_addition' => ['name' => 'address_addition', 'type' => 'string', 'internal' => 'addition'], + 'address_address' => ['name' => 'address_address', 'type' => 'string', 'internal' => 'address'], 'address_postal' => ['name' => 'address_postal', 'type' => 'string', 'internal' => 'postal'], 'address_state' => ['name' => 'address_state', 'type' => 'string', 'internal' => 'state'], 'address_city' => ['name' => 'address_city', 'type' => 'string', 'internal' => 'city'], - 'address_country' => ['name' => 'address_country', 'type' => 'int', 'internal' => 'country'], + 'address_country' => ['name' => 'address_country', 'type' => 'string', 'internal' => 'country'], + 'address_type' => ['name' => 'address_type', 'type' => 'int', 'internal' => 'type'], ]; /** @@ -52,6 +55,9 @@ final class AddressMapper extends DataMapperAbstract 'country' => [ 'mapper' => CountryMapper::class, 'self' => 'address_country', + 'by' => 'code2', + 'column' => 'code2', + 'conditional' => true, ], ];