Files
api-extranetwork/app/Core/Service/PdfContentService.php
ExtraNetwork e5c4b6aa13 first commit
2026-05-12 17:04:54 +03:00

636 lines
32 KiB
PHP

<?php
namespace App\Core\Service;
use App\Core\Repository\Property\PropertyRepository;
use App\Core\Repository\PropertyWebPhotoMapping\PropertyWebPhotoMappingRepository;
use App\Core\Service\PropertyAdditionalInfo\PropertyAdditionalInfoService;
use App\Core\Service\PropertyExecutiveService;
use App\Core\Service\PropertyPhotoService\PropertyPhotoService;
use App\Core\Service\PropertyRoomService;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Str;
use \App\Core\Service\PropertyFactService;
use \App\Core\Service\PropertyWebColorMappingService;
use Illuminate\Support\Facades\Log;
use Exception;
use App\Exceptions\ApiErrorException;
use Illuminate\Support\Facades\Config;
use Carbon\Carbon;
class PdfContentService
{
private $propertyRepository;
private $propertyAdditionalInfoService;
private $propertyContactService;
private $propertyFactService;
private $propertyPhotoService;
private $propertyRoomService;
private $propertyExecutiveService;
private $propertyWebPhotoMappingRepository;
private $propertyWebColorMappingService;
private $propertyPlaceService;
public function __construct(
PropertyRepository $propertyRepository,
PropertyAdditionalInfoService $propertyAdditionalInfoService,
PropertyContactService $propertyContactService,
PropertyFactService $propertyFactService,
PropertyPhotoService $propertyPhotoService,
PropertyRoomService $propertyRoomService,
PropertyExecutiveService $propertyExecutiveService,
PropertyWebPhotoMappingRepository $propertyWebPhotoMappingRepository,
PropertyWebColorMappingService $propertyWebColorMappingService,
PropertyPlaceService $propertyPlaceService
)
{
$this->propertyRepository = $propertyRepository;
$this->propertyAdditionalInfoService = $propertyAdditionalInfoService;
$this->propertyContactService = $propertyContactService;
$this->propertyFactService = $propertyFactService;
$this->propertyPhotoService = $propertyPhotoService;
$this->propertyRoomService = $propertyRoomService;
$this->propertyExecutiveService = $propertyExecutiveService;
$this->propertyWebPhotoMappingRepository = $propertyWebPhotoMappingRepository;
$this->propertyWebColorMappingService = $propertyWebColorMappingService;
$this->propertyPlaceService = $propertyPlaceService;
}
public function pdfData($params = [])
{
$response = ['status' => -1, 'message' => '', 'data' => null];
try {
$propertyRequest = [
'criteria' => [
['field' => 'id', 'condition' => '=', 'value' => $params['property_id']],
['field' => 'status', 'condition' => '=', 'value' => 1],
],
'with' => [
'propertyBrand', 'propertyContact', 'propertyPhotos', 'propertyType', 'propertyChain',
'propertyRooms.propertyRoomType', 'propertyExecutive.executiveType',
'propertyLanguageSpoken.languageCode', 'propertyAwardsCertificates.awardsCertificateCategory'
],
'firstRow' => true
];
$getPropertyFields = [
'id', 'name', 'property_type_id', 'chain_id', 'rating', 'official_name', 'tax_office', 'tax_number', 'currency_type', 'country'
];
$property = $this->propertyRepository->findByCriteria($propertyRequest, $getPropertyFields);
//dd($property['property_rooms']);
if (!$property) {
throw new ApiErrorException('property not found');
}
$newExecutiveArray = [];
foreach ($property['property_executive'] as $propertyExecutive) {
$executiveItem = [
'id' => $propertyExecutive['id'],
'executive_type_name' => $propertyExecutive['executive_type']['name'],
'executive_type_locale_key' => $propertyExecutive['executive_type']['language_key'],
'executive_type_icon' => $propertyExecutive['executive_type']['icon'],
'name_surname' => $propertyExecutive['name_surname'],
'email' => $propertyExecutive['email'],
'phone_code' => $propertyExecutive['phone_code'],
'phone' => $propertyExecutive['phone'],
'extension' => $propertyExecutive['extension'],
'mobile_code' => $propertyExecutive['mobile_code'],
'mobile' => $propertyExecutive['mobile'],
'fax_code' => $propertyExecutive['fax_code'],
'fax' => $propertyExecutive['fax'],
'view_full_phone' => $propertyExecutive['view_full_phone'],
'view_full_mobile' => $propertyExecutive['view_full_mobile'],
'view_full_fax' => $propertyExecutive['view_full_fax'],
];
if ($propertyExecutive['status'] == 1) {
$newExecutiveArray[] = $executiveItem;
}
}
$getPropertyFact = $this->propertyFactService->getPropertyFact($params);
if ($getPropertyFact['status'] != 'success') {
throw new ApiErrorException($getPropertyFact['message']);
}
$getPropertyFact = $this->getPropertyFactForHtml($getPropertyFact['data']);
if ($getPropertyFact['status'] != 'success') {
throw new ApiErrorException($getPropertyFact['message']);
}
$responseData = [
'name' => $property['name'],
'property_type' => fillOnUndefined($property['property_type'], 'name'),
'property_type_language_key' => fillOnUndefined($property['property_type'], 'language_key'),
'property_type_key' => fillOnUndefined($property['property_type'], 'language_key'),
'property_chain' => fillOnUndefined($property['property_chain'], 'name'),
'official_name' => $property['official_name'],
'tax_office' => $property['tax_office'],
'tax_number' => $property['tax_number'],
'currency_type' => $property['currency_type'],
'country' => $property['country'],
'description' => $property['name'],
'rooms' => $property['property_rooms'],
'property_brand' => $property['property_brand'],
'property_contact' => $property['property_contact'],
'property_facts' => $getPropertyFact['data'],
'property_executive' => $newExecutiveArray,
];
$propertyAdditionalInfo = $this->propertyAdditionalInfoService->getPropertyAdditionalInfo2KeyBy($params);
if (isset($propertyAdditionalInfo['data'])) {
$responseData['additional_info'] = $propertyAdditionalInfo['data'];
}
$responseData['property_language_spoken'] = null;
if ($property['property_language_spoken']) {
foreach ($property['property_language_spoken'] as $language) {
$responseData['property_language_spoken'][] = __($language['language_code']['language_key']);
}
if ($responseData['property_language_spoken']) {
$responseData['property_language_spoken'] = implode(', ', $responseData['property_language_spoken']);
}
}
$responseData['property_awards_certificates'] = null;
if ($property['property_awards_certificates']) {
foreach ($property['property_awards_certificates'] as $certificate) {
if ($certificate['status'] == 1) {
$responseData['property_awards_certificates'][] = $certificate['awards_certificate_category']['name'] . (!empty($certificate['date']) ? ' (' . $certificate['date'] . ')' : '');
}
}
if ($responseData['property_awards_certificates']) {
$responseData['property_awards_certificates'] = implode(', ', $responseData['property_awards_certificates']);
}
}
$propertyPlaceCriteria = [
'criteria' =>
[
['field' => 'property_id', 'condition' => '=', 'value' => $params['property_id']],
['field' => 'status', 'condition' => '!=', 'value' => 0],
//['field' => 'id', 'condition' => '=', 'value' => 5],//TODO: Del
],
'with' => [
'propertyPlaceCategory', 'propertyPlaceWorkingHour',
'propertyPlaceFactMapping.propertyPlaceFactTitleFactMapping.placeFact',
'propertyPlaceFactMapping.propertyPlaceFactTitleFactMapping.placeFactTitle',
'propertyPlaceCategoryFieldValue.placeCategoryField',
'propertyPlaceCategoryFieldValue.unitValue',
'propertyPlaceCategoryFieldValue.optionValue'
],
'orderBy' => [["field" => "order_number", "value" => "ASC"]],
];
$propertyPlaces = $this->propertyPlaceService->select($propertyPlaceCriteria);
$propertyPlaces = $propertyPlaces['data'] ? $propertyPlaces['data'] : [];
foreach ($propertyPlaces as $placeKey => $propertyPlace) {
$propertyPlaceFactGroups = collect($propertyPlace['property_place_fact_mapping'])->groupBy('property_place_fact_title_fact_mapping.place_fact_title.id');
$propertyPlaceFactGroups = $propertyPlaceFactGroups->toArray();
$propertyPlaceFactMapping = [];
foreach ($propertyPlaceFactGroups as $propertyPlaceFactGroupKey => $propertyPlaceFactGroup) {
foreach ($propertyPlaceFactGroup as $propertyPlaceFact) {
$propertyPlaceFactMapping[$propertyPlaceFactGroupKey]['title'] = $propertyPlaceFact['property_place_fact_title_fact_mapping']['place_fact_title']['language_key'];
$propertyPlaceFactMapping[$propertyPlaceFactGroupKey]['fact'][] = $propertyPlaceFact['property_place_fact_title_fact_mapping']['place_fact']['language_key'];
}
}
unset($propertyPlaces[$placeKey]['property_place_fact_mapping']);
$propertyPlaces[$placeKey]['property_place_fact_mapping'] = $propertyPlaceFactMapping;
}
$responseData['propertyPlaces'] = $propertyPlaces;
$response = [
'status' => true,
'data' => $responseData,
];
} catch (ApiErrorException $e) {
$response['message'] = $e->getMessage();
} catch (Exception $e) {
$message = $e->getFile() . " " . $e->getLine() . " " . $e->getMessage();
Log::error($message);
$response['message'] = $e->getMessage();
}
return output($response);
}
public function getPropertyFactForHtml($params = [])
{
$response = ['status' => -1, 'message' => '', 'data' => null];
try {
$categories = $params;
$responseArray = [];
foreach ($categories as $category) {
$categoryArray = [];
$categoryItem = $category;
foreach ($category['fact_subcategory'] as $subCategory) {
$subCategoryItem = $subCategory;
$facts = collect($subCategory['fact'])
->where('is_selected', '=', true)
->map(function ($value) {
return $value;
})->values()->all();
$subCategoryItem['fact'] = $facts ? $facts : [];
if ($facts) {
$categoryArray[$subCategory['id']] = $subCategoryItem;
}
}
$categoryItem['fact_subcategory'] = $categoryArray;
$responseArray[$category['id']] = $categoryItem;
}
$response = [
'status' => true,
'data' => $responseArray,
];
} catch (ApiErrorException $e) {
$response['message'] = $e->getMessage();
} catch (Exception $e) {
$message = $e->getFile() . " " . $e->getLine() . " " . $e->getMessage();
Log::error($message);
$response['message'] = $e->getMessage();
}
return output($response);
}
public function propertyBaseData($params = [])
{
$response = ['status' => -1, 'message' => '', 'data' => null];
try {
$propertyRequest = [
'criteria' => [
['field' => 'id', 'condition' => '=', 'value' => $params['property_id']],
['field' => 'status', 'condition' => '=', 'value' => 1],
],
'with' => ['propertyBrand', 'propertyContact'],
'firstRow' => true
];
$getPropertyFields = ['id', 'name', 'property_type_id', 'chain_id', 'rating', 'official_name', 'tax_office', 'tax_number', 'currency_type', 'country'];
$property = $this->propertyRepository->findByCriteria($propertyRequest, $getPropertyFields);
if (!$property) {
throw new ApiErrorException('property not found');
}
$response = [
'status' => true,
'data' => $property,
];
} catch (ApiErrorException $e) {
$response['message'] = $e->getMessage();
} catch (Exception $e) {
$message = $e->getFile() . " " . $e->getLine() . " " . $e->getMessage();
Log::error($message);
$response['message'] = $e->getMessage();
}
return output($response);
}
public function factSheetData($params = [])
{
$response = ['status' => -1, 'message' => '', 'data' => null];
$factSheetData = [];
try {
$propertyRequest = [
'criteria' => [
['field' => 'id', 'condition' => '=', 'value' => $params['property_id']],
['field' => 'status', 'condition' => '=', 'value' => 1],
],
'with' => [
'propertyBrand', 'propertyContact', 'propertyPhotos', 'propertyType', 'propertyChain',
'propertyExecutive.executiveType', 'propertyLanguageSpoken.languageCode', 'propertyAwardsCertificates.awardsCertificateCategory',
'propertyRooms.propertyRoomType', 'propertyRooms.propertyRoomFactMapping.propertyFact',
'propertyRooms.propertyRoomPhotoMapping.propertyRoomPhoto',
'propertyRooms.propertyRoomViewMapping.propertyRoomViewType',
'propertyFactMapping.fact.propertyFactParent.propertyFactParent', 'propertyBookingEngineToken',
'propertyPlace.propertyPlaceCategory', 'propertyPlace.propertyPlaceWorkingHour',
'propertyPlace.propertyPlaceFactMapping.propertyPlaceFactTitleFactMapping.placeFact',
'propertyPlace.propertyPlaceFactMapping.propertyPlaceFactTitleFactMapping.placeFactTitle',
'propertyPlace.propertyPlaceCategoryFieldValue.placeCategoryField',
'propertyPlace.propertyPlaceCategoryFieldValue.unitValue',
'propertyPlace.propertyPlaceCategoryFieldValue.optionValue',
'propertyPlace.propertyPlacePhotoMapping.propertyPlacePhoto',
'propertyAdditionalInfos.propertyAdditionalInfoKey'
],
'firstRow' => true
];
$getPropertyFields = ['id', 'name', 'property_type_id', 'chain_id', 'rating', 'official_name', 'tax_office', 'tax_number', 'currency_type', 'country'];
$property = $this->propertyRepository->findByCriteria($propertyRequest, $getPropertyFields);
if (!$property) {
throw new ApiErrorException('Property not found');
}
//colorCodes
$colorCodes = null;
$colorCodesArray = json_decode($property['property_brand']['color_codes'], 1);
$colorCodes = array_values($colorCodesArray);
//summary
$summary = null;
$summaryArray = json_decode($property['property_brand']['title'], 1);
$summary = isset($summaryArray[$params['locale']]) ? $summaryArray[$params['locale']] : null;
//propertyFact
$propertyFact = null;
$amenities = collect($property['property_fact_mapping'])->where('fact.property_fact_parent.property_fact_parent.id',1)->toArray();
$propertyFact['amenities']['name'] = __('property_fact-amenities',[],$params['locale']);
foreach ($amenities as $propertyFactMapping) {
$propertyFact['amenities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['name'] = __($propertyFactMapping['fact']['property_fact_parent']['language_key'],[],$params['locale']);
$propertyFact['amenities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['order_number'] = $propertyFactMapping['fact']['property_fact_parent']['order_number'];
$propertyFact['amenities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['fact'][$propertyFactMapping['fact']['id']] = [
'name' => __($propertyFactMapping['fact']['language_key'],[],$params['locale']),
'icon' => $propertyFactMapping['fact']['icon'],
];
$propertyFact['amenities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['fact'] = array_values($propertyFact['amenities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['fact']);
}
$propertyFact['amenities']['fact'] = collect($propertyFact['amenities']['fact'])->sortBy('order_number')->toArray();
$propertyFact['amenities']['fact'] = array_values($propertyFact['amenities']['fact']);
$facilities = collect($property['property_fact_mapping'])->where('fact.property_fact_parent.property_fact_parent.id',44)->toArray();
$propertyFact['facilities']['name'] = __('property_fact-facilities',[],$params['locale']);
foreach ($facilities as $propertyFactMapping) {
$propertyFact['facilities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['name'] = __($propertyFactMapping['fact']['property_fact_parent']['language_key'],[],$params['locale']);
$propertyFact['facilities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['order_number'] = $propertyFactMapping['fact']['property_fact_parent']['order_number'];
$propertyFact['facilities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['fact'][$propertyFactMapping['fact']['id']] = [
'name' => __($propertyFactMapping['fact']['language_key'],[],$params['locale']),
'icon' => $propertyFactMapping['fact']['icon'],
];
$propertyFact['facilities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['fact'] = array_values($propertyFact['facilities']['fact'][$propertyFactMapping['fact']['property_fact_parent']['id']]['fact']);
}
$propertyFact['facilities']['fact'] = collect($propertyFact['facilities']['fact'])->sortBy('order_number')->toArray();
$propertyFact['facilities']['fact'] = array_values($propertyFact['facilities']['fact']);
//propertyPhoto
$propertyPhoto = [];
foreach ($property['property_photos'] as $propertyPhotos) {
$propertyPhoto[] = [
'photo_order' => $propertyPhotos['photo_order'],
'is_default' => $propertyPhotos['is_default'],
'is_compatible_slider' => $propertyPhotos['is_compatible_with_myweb_slider'],
'photoUrl' => $propertyPhotos['photoUrl'],
];
}
$propertyPhoto = collect($propertyPhoto)->sortBy('photo_order')->toArray();
$propertyPhoto = array_values($propertyPhoto);
//propertyAwardsCertificate
$propertyAwardsCertificate = [];
foreach ($property['property_awards_certificates'] as $propertyAwardsCertificateMapping) {
$propertyAwardsCertificate[] = [
'name' => $propertyAwardsCertificateMapping['awards_certificate_category']['name'],
'type' => $propertyAwardsCertificateMapping['awards_certificate_category']['type'],
];
}
//propertyExecutive
$propertyExecutive = [];
foreach ($property['property_executive'] as $propertyExecutives) {
$propertyExecutive[] = [
'name' => $propertyExecutives['name_surname'],
'type' => __($propertyExecutives['executive_type']['language_key'],[],$params['locale']),
'email' => $propertyExecutives['email'],
'phone' => $propertyExecutives['view_full_phone'],
'mobile' => $propertyExecutives['view_full_mobile'],
'fax' => $propertyExecutives['view_full_fax'],
];
}
//propertyAwardsCertificate
$propertyAdditionalInfo = [];
foreach ($property['property_additional_infos'] as $propertyAdditionalInfos) {
$propertyAdditionalInfo[] = [
'id' => $propertyAdditionalInfos['additional_info_key_id'],
'name' => __($propertyAdditionalInfos['property_additional_info_key']['language_key'],[],$params['locale']),
'key' => $propertyAdditionalInfos['property_additional_info_key']['additional_info_key'],
'language_key' => $propertyAdditionalInfos['property_additional_info_key']['language_key'],
'value' => $propertyAdditionalInfos['value'],
];
}
//propertyRoom
$propertyRoom = [];
foreach ($property['property_rooms'] as $propertyRooms) {
$propertyRoom[$propertyRooms['id']] = [
'name' => $propertyRooms['name'],
'type' => __($propertyRooms['property_room_type']['language_key'],[],$params['locale']),
'max_occupancy' => $propertyRooms['max_occupancy'],
'max_adult' => $propertyRooms['max_adult'],
'max_child' => $propertyRooms['max_child'],
'max_child_number' => $propertyRooms['max_child_number'],
'room_size' => $propertyRooms['room_size'],
'room_size_type' => $propertyRooms['roomSizeTypeFormatted'],
'room_count' => $propertyRooms['room_count']
];
//propertyRoomFact
$propertyRoomFact = null;
foreach ($propertyRooms['property_room_fact_mapping'] as $propertyRoomFactMapping) {
$propertyRoomFact[$propertyRoomFactMapping['property_fact']['id']] = [
'name' => __($propertyRoomFactMapping['property_fact']['language_key'],[],$params['locale']),
'icon' => $propertyRoomFactMapping['property_fact']['icon'],
];
$propertyRoomFact = array_values($propertyRoomFact);
}
$propertyRoomFact = collect($propertyRoomFact)->sortBy('order_number')->toArray();
$propertyRoomFact = array_values($propertyRoomFact);
$propertyRoom[$propertyRooms['id']]['fact'] = $propertyRoomFact;
//propertyRoomPhoto
$propertyRoomPhoto = null;
foreach ($propertyRooms['property_room_photo_mapping'] as $propertyRoomPhotoMapping) {
$propertyRoomPhoto[] = [
'photo_order' => $propertyRoomPhotoMapping['property_room_photo']['photo_order'],
'is_default' => $propertyRoomPhotoMapping['property_room_photo']['is_default'],
'photoUrl' => $propertyRoomPhotoMapping['property_room_photo']['photoUrl'],
];
}
$propertyRoomPhoto = collect($propertyRoomPhoto)->sortBy('photo_order')->toArray();
//dd($propertyRoomPhoto);
$propertyRoomPhoto = array_values($propertyRoomPhoto);
$propertyRoom[$propertyRooms['id']]['photo'] = $propertyRoomPhoto;
//propertyRoomView
$propertyRoomView = null;
foreach ($propertyRooms['property_room_view_mapping'] as $propertyRoomViewMapping) {
$propertyRoomView[] = [
'name' => __($propertyRoomViewMapping['property_room_view_type']['language_key'],[],$params['locale']),
];
}
$propertyRoom[$propertyRooms['id']]['view'] = $propertyRoomView;
}
$propertyRoom = array_values($propertyRoom);
//propertyPlace
$propertyPlace = [];
foreach ($property['property_place'] as $propertyPlaces) {
//$description
$description = null;
$descriptionArray = json_decode($propertyPlaces['description'], 1);
$description = isset($descriptionArray[$params['locale']]) ? $descriptionArray[$params['locale']] : null;
//propertyPlaceFact
$propertyPlaceFact = null;
foreach ($propertyPlaces['property_place_fact_mapping'] as $propertyPlaceFactMapping) {
$propertyPlaceFact[$propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact_title']['id']]['name'] = __($propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact_title']['language_key']);
$propertyPlaceFact[$propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact_title']['id']]['fact'][$propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact']['id']] = [
'name' => __($propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact']['language_key'],[],$params['locale']),
'icon' => $propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact']['icon'],
];
$propertyPlaceFact[$propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact_title']['id']]['fact'] = array_values($propertyPlaceFact[$propertyPlaceFactMapping['property_place_fact_title_fact_mapping']['place_fact_title']['id']]['fact']);
}
$propertyPlaceFact = collect($propertyPlaceFact)->sortBy('order_number')->toArray();
$propertyPlaceFact = array_values($propertyPlaceFact);
//propertyPlaceFact
$propertyPlaceField = null;
foreach ($propertyPlaces['property_place_category_field_value'] as $propertyPlaceCategoryField) {
$propertyPlaceField[] = [
'id' => $propertyPlaceCategoryField['place_category_field']['id'],
'name' => __($propertyPlaceCategoryField['place_category_field']['language_key'],[],$params['locale']),
'element' => $propertyPlaceCategoryField['place_category_field']['element'],
'input_value' => $propertyPlaceCategoryField['input_value'],
'option_value' => $propertyPlaceCategoryField['option_value'],
'unit' => isset($propertyPlaceCategoryField['unit_value']) ? __($propertyPlaceCategoryField['unit_value']['language_key'],[],$params['locale']) : null,
'unit_short_name' => isset($propertyPlaceCategoryField['unit_value']) ? $propertyPlaceCategoryField['unit_value']['short_name'] : null,
];
}
//propertyPlacePhoto
$propertyPlacePhoto= null;
foreach ($propertyPlaces['property_place_photo_mapping'] as $propertyPlacePhotoMapping) {
$propertyPlacePhoto[] = [
'photo_order' => $propertyPlacePhotoMapping['property_place_photo']['photo_order'],
'is_default' => $propertyPlacePhotoMapping['property_place_photo']['is_default'],
'photoUrl' => $propertyPlacePhotoMapping['property_place_photo']['photoUrl'],
];
}
$propertyPlacePhoto = collect($propertyPlacePhoto)->sortBy('photo_order')->toArray();
$propertyPlacePhoto = array_values($propertyPlacePhoto);
$propertyPlace[$propertyPlaces['id']] = [
'name' => $propertyPlaces['name'],
'category' => __($propertyPlaces['property_place_category']['language_key'],[],$params['locale']),
'description' => $description,
'field' => $propertyPlaceField,
'fact' => $propertyPlaceFact,
'photo' => $propertyPlacePhoto
];
}
$propertyPlace = array_values($propertyPlace);
$factSheetData = [
'id' => $property['id'],
'name' => $property['name'],
'booking_engine_token' => isset($property['property_booking_engine_token']['token']) ? $property['property_booking_engine_token']['token'] : null,
'property_type' => __(fillOnUndefined($property['property_type'], 'language_key'),[],$params['locale']),
'property_chain' => __(fillOnUndefined($property['property_chain'], 'name'),[],$params['locale']),
'property_brand' => [
'logoUrl' => $property['property_brand']['logoUrl'],
'colorCodes' => $colorCodes,
'summary' => $summary
],
'property_contact' => [
'country' => $property['country'],
'address' => $property['property_contact']['address'],
'zip_code' => $property['property_contact']['zip_code'],
'latitude' => $property['property_contact']['latitude'],
'longitude' => $property['property_contact']['longitude'],
'phone' => $property['property_contact']['view_full_phone'],
'mobile' => $property['property_contact']['view_full_mobile'],
'fax' => $property['property_contact']['view_full_fax'],
'email' => $property['property_contact']['email'],
'web' => $property['property_contact']['web'],
],
'property_executive' => $propertyExecutive,
'property_awards_certificates' => $propertyAwardsCertificate,
'property_fact' => $propertyFact,
'property_photo' => $propertyPhoto,
'property_room' => $propertyRoom,
'property_place' => $propertyPlace,
'additional_info' => $propertyAdditionalInfo
];
$response = [
'status' => true,
'data' => $factSheetData,
];
} catch (ApiErrorException $e) {
$response['message'] = $e->getMessage();
} catch (Exception $e) {
$message = $e->getFile() . " " . $e->getLine() . " " . $e->getMessage();
Log::error($message);
$response['message'] = $e->getMessage();
}
return output($response);
}
}