2020-06-29 00:30:57 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace Zoomyboy\LaravelNami;
|
|
|
|
|
2020-06-30 00:05:36 +02:00
|
|
|
use Carbon\Carbon;
|
2020-06-29 00:30:57 +02:00
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
|
|
|
|
class Member extends Model {
|
|
|
|
|
|
|
|
protected static $overviewAttributes = [
|
|
|
|
'vorname' => 'firstname',
|
|
|
|
'nachname' => 'lastname',
|
|
|
|
'spitzname' => 'nickname',
|
|
|
|
'staatsangehoerigkeitText' => 'other_country',
|
|
|
|
'strasse' => 'address',
|
|
|
|
'nameZusatz' => 'further_address',
|
|
|
|
'plz' => 'zip',
|
|
|
|
'ort' => 'location',
|
|
|
|
'id' => 'id',
|
|
|
|
'telefon1' => 'main_phone',
|
|
|
|
'telefon2' => 'mobile_phone',
|
|
|
|
'telefon3' => 'work_phone',
|
|
|
|
'telefax' => 'fax',
|
|
|
|
'email' => 'email',
|
2020-06-29 23:29:54 +02:00
|
|
|
'geschlechtId' => 'gender_id',
|
2020-06-29 23:42:48 +02:00
|
|
|
'emailVertretungsberechtigter' => 'email_parents',
|
2020-06-30 00:01:17 +02:00
|
|
|
'staatsangehoerigkeitId' => 'nationality_id',
|
2020-06-30 00:05:36 +02:00
|
|
|
'konfessionId' => 'confession_id',
|
|
|
|
'geburtsDatum' => 'birthday'
|
2020-06-29 00:30:57 +02:00
|
|
|
];
|
|
|
|
|
|
|
|
protected $guarded = [];
|
|
|
|
|
|
|
|
public static function fromNami($item) {
|
|
|
|
$item = collect($item)
|
|
|
|
->only(array_keys(static::$overviewAttributes))
|
|
|
|
->mapWithKeys(function($item, $key) {
|
|
|
|
return [ data_get(static::$overviewAttributes, $key, $key) => $item ];
|
|
|
|
})
|
|
|
|
->toArray();
|
|
|
|
return (new self($item));
|
|
|
|
}
|
|
|
|
|
|
|
|
public function __construct($member) {
|
|
|
|
parent::__construct($member);
|
|
|
|
}
|
|
|
|
|
2020-06-30 00:05:36 +02:00
|
|
|
public function getBirthdayAttribute() {
|
|
|
|
return Carbon::parse($this->attributes['birthday'])->format('Y-m-d');
|
|
|
|
}
|
|
|
|
|
2020-06-29 23:29:54 +02:00
|
|
|
public function getGenderIdAttribute() {
|
|
|
|
return $this->attributes['gender_id'] == Gender::getNullValue() ? null : $this->attributes['gender_id'];
|
|
|
|
}
|
|
|
|
|
2020-06-29 00:30:57 +02:00
|
|
|
}
|