Re Format Doctor Resource
This commit is contained in:
@@ -15,13 +15,69 @@ class DoctorResource extends JsonResource
|
|||||||
*/
|
*/
|
||||||
public function toArray($request)
|
public function toArray($request)
|
||||||
{
|
{
|
||||||
$practices = $this->practitionerRoles->map(function($practitionerRole) {
|
// $practices = $this->practitionerRoles->map(function($practitionerRole) {
|
||||||
return [
|
// return [
|
||||||
|
// 'id' => $practitionerRole->id,
|
||||||
|
// 'doctor_id' => $practitionerRole->practitioner_id,
|
||||||
|
// 'hospital_id' => $practitionerRole->organization_id,
|
||||||
|
// 'speciality_id' => $practitionerRole->speciality_id,
|
||||||
|
// 'hospital' => HospitalResource::make($practitionerRole->organization),
|
||||||
|
// 'speciality' => SpecialityResource::make($practitionerRole->speciality),
|
||||||
|
// 'str' => '3121100888826697',
|
||||||
|
// 'sip' => '73/B.16/31.71.05.1003.01.015.S.2/4/-1.779.3/e/2020',
|
||||||
|
|
||||||
|
// 'is_chat_available' => $practitionerRole->is_chat_available,
|
||||||
|
// 'is_video_available' => $practitionerRole->is_video_available,
|
||||||
|
// 'is_walkin_available' => $practitionerRole->is_walkin_available,
|
||||||
|
// 'is_instant_chat_available' => $practitionerRole->is_instant_chat_available,
|
||||||
|
// ];
|
||||||
|
// });
|
||||||
|
|
||||||
|
$specialities = [];
|
||||||
|
$hospitals = [];
|
||||||
|
$isChatAvailable = false;
|
||||||
|
$isVideoAvailable = false;
|
||||||
|
$isWalkinAvailable = false;
|
||||||
|
$isInstantChatAvailable = false;
|
||||||
|
|
||||||
|
foreach ($this->practitionerRoles as $practitionerRole) {
|
||||||
|
$specialities[$practitionerRole->speciality_id]['id'] = $practitionerRole->speciality_id;
|
||||||
|
$specialities[$practitionerRole->speciality_id]['code'] = $practitionerRole->speciality->code;
|
||||||
|
$specialities[$practitionerRole->speciality_id]['name'] = $practitionerRole->speciality->name;
|
||||||
|
// $specialities[$practitionerRole->speciality_id]['practices'][] = [
|
||||||
|
// 'id' => $practitionerRole->id,
|
||||||
|
// 'doctor_id' => $practitionerRole->practitioner_id,
|
||||||
|
// 'hospital_id' => $practitionerRole->organization_id,
|
||||||
|
// 'speciality_id' => $practitionerRole->speciality_id,
|
||||||
|
// 'hospital' => HospitalResource::make($practitionerRole->organization),
|
||||||
|
// 'str' => '3121100888826697',
|
||||||
|
// 'sip' => '73/B.16/31.71.05.1003.01.015.S.2/4/-1.779.3/e/2020',
|
||||||
|
|
||||||
|
// 'is_chat_available' => $practitionerRole->is_chat_available,
|
||||||
|
// 'is_video_available' => $practitionerRole->is_video_available,
|
||||||
|
// 'is_walkin_available' => $practitionerRole->is_walkin_available,
|
||||||
|
// 'is_instant_chat_available' => $practitionerRole->is_instant_chat_available,
|
||||||
|
// ];
|
||||||
|
|
||||||
|
|
||||||
|
$hospitals[$practitionerRole->organization_id]['id'] = $practitionerRole->hospital_id;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['code'] = $practitionerRole->organization->code;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['name'] = $practitionerRole->organization->name;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['description'] = $practitionerRole->organization->description;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['address'] = $practitionerRole->organization->currentAddress->text;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['lat'] = $practitionerRole->organization->currentAddress->lat;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['lng'] = $practitionerRole->organization->currentAddress->lng;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['distance'] = $practitionerRole->organization->currentAddress->distance ?? null;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['city_name'] = $practitionerRole->organization->currentAddress->city->name ?? null;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['rating'] = (rand(350, 500) / 100);
|
||||||
|
$hospitals[$practitionerRole->organization_id]['phone'] = $practitionerRole->organization->meta->phone;
|
||||||
|
$hospitals[$practitionerRole->organization_id]['photo_url'] = asset('images/default-hospital-image.png');
|
||||||
|
|
||||||
|
$hospitals[$practitionerRole->organization_id]['practices'][] = [
|
||||||
'id' => $practitionerRole->id,
|
'id' => $practitionerRole->id,
|
||||||
'doctor_id' => $practitionerRole->practitioner_id,
|
'doctor_id' => $practitionerRole->practitioner_id,
|
||||||
'hospital_id' => $practitionerRole->organization_id,
|
'hospital_id' => $practitionerRole->organization_id,
|
||||||
'speciality_id' => $practitionerRole->speciality_id,
|
'speciality_id' => $practitionerRole->speciality_id,
|
||||||
'hospital' => HospitalResource::make($practitionerRole->organization),
|
|
||||||
'speciality' => SpecialityResource::make($practitionerRole->speciality),
|
'speciality' => SpecialityResource::make($practitionerRole->speciality),
|
||||||
'str' => '3121100888826697',
|
'str' => '3121100888826697',
|
||||||
'sip' => '73/B.16/31.71.05.1003.01.015.S.2/4/-1.779.3/e/2020',
|
'sip' => '73/B.16/31.71.05.1003.01.015.S.2/4/-1.779.3/e/2020',
|
||||||
@@ -31,8 +87,21 @@ class DoctorResource extends JsonResource
|
|||||||
'is_walkin_available' => $practitionerRole->is_walkin_available,
|
'is_walkin_available' => $practitionerRole->is_walkin_available,
|
||||||
'is_instant_chat_available' => $practitionerRole->is_instant_chat_available,
|
'is_instant_chat_available' => $practitionerRole->is_instant_chat_available,
|
||||||
];
|
];
|
||||||
});
|
|
||||||
|
if ($practitionerRole->is_chat_available) {
|
||||||
|
$isChatAvailable = true;
|
||||||
|
}
|
||||||
|
if ($practitionerRole->is_video_available) {
|
||||||
|
$isVideoAvailable = true;
|
||||||
|
}
|
||||||
|
if ($practitionerRole->is_walkin_available) {
|
||||||
|
$isWalkinAvailable = true;
|
||||||
|
}
|
||||||
|
if ($practitionerRole->is_instant_chat_available) {
|
||||||
|
$isInstantChatAvailable = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return [
|
return [
|
||||||
'id' => $this->id,
|
'id' => $this->id,
|
||||||
'full_name' => $this->person->full_name ?? null,
|
'full_name' => $this->person->full_name ?? null,
|
||||||
@@ -54,8 +123,15 @@ class DoctorResource extends JsonResource
|
|||||||
'keilmuan' => $this->meta->keilmuan ?? '',
|
'keilmuan' => $this->meta->keilmuan ?? '',
|
||||||
'length_of_work_year' => rand(1, 10),
|
'length_of_work_year' => rand(1, 10),
|
||||||
'description' => $this->meta->description ?? '',
|
'description' => $this->meta->description ?? '',
|
||||||
'practices' => $practices,
|
// 'practices' => $practices,
|
||||||
'rating' => rand(88, 100),
|
'rating' => rand(88, 100),
|
||||||
|
'specialities' => $specialities,
|
||||||
|
'hospitals' => $hospitals,
|
||||||
|
|
||||||
|
'is_has_chat_available' => $isChatAvailable,
|
||||||
|
'is_has_video_available' => $isVideoAvailable,
|
||||||
|
'is_has_walkin_available' => $isWalkinAvailable,
|
||||||
|
'is_has_instant_chat_available' => $isInstantChatAvailable,
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ namespace App\Models;
|
|||||||
|
|
||||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class Organization extends Model
|
class Organization extends Model
|
||||||
{
|
{
|
||||||
@@ -26,6 +27,11 @@ class Organization extends Model
|
|||||||
public $appends = [
|
public $appends = [
|
||||||
'meta'
|
'meta'
|
||||||
];
|
];
|
||||||
|
|
||||||
|
public function setCodeAttribute($value)
|
||||||
|
{
|
||||||
|
$this->attributes['code'] = !empty($value) ? $value : Str::upper(Str::random('6'));
|
||||||
|
}
|
||||||
|
|
||||||
public function getMetaAttribute()
|
public function getMetaAttribute()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,7 +73,8 @@ class DrugSeeder extends Seeder
|
|||||||
'name' => $row_data['pabrikan']
|
'name' => $row_data['pabrikan']
|
||||||
], [
|
], [
|
||||||
'name' => $row_data['pabrikan'],
|
'name' => $row_data['pabrikan'],
|
||||||
'type' => 'manufacturer'
|
'type' => 'manufacturer',
|
||||||
|
'code' => $row_data['pabrikan']
|
||||||
]);
|
]);
|
||||||
|
|
||||||
if (in_array($row_data['golongan'], ['VITAMINS & MINERALS', 'NUTRITIONS'])) {
|
if (in_array($row_data['golongan'], ['VITAMINS & MINERALS', 'NUTRITIONS'])) {
|
||||||
|
|||||||
Reference in New Issue
Block a user