File "OrderRepeatResource.php"
Full Path: /home/clickysoft/public_html/jmapi5.clickysoft.net/app/Http/Resources/User/OrderRepeatResource.php
File size: 4.2 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace App\Http\Resources\User;
use Illuminate\Http\Resources\Json\JsonResource;
class OrderRepeatResource extends JsonResource
{
public function toArray($request)
{
$orderItems = $customization_array = [];
foreach ($this->items as $item) {
$variations = [];
foreach ($item->itemVariations as $variation){
$variations[] = [
'id' => $variation->variation?->id,
'type' => $variation->variation?->type,
'value' => $variation->variation?->value,
];
}
foreach ($item->orderItemCustomizations as $customization){
$customization_array['url'][] = $customization->mediaUrl;
}
$product = $item->product;
$productVariations = [];
foreach ($product->variations ?? [] as $variation){
$v = $variation->variation;
if($v){
$productVariations[$v->type][] = ['id' => $v->id, 'value' => $v->value];
}
}
$productPrices = [];
foreach ($product->prices ?? [] as $price){
$combinations = $ranges = [];
foreach ($price->combinations ?? [] as $combination){
$combinations[] = [
'variation_id' => $combination->variation_id,
];
}
foreach ($price->priceRanges ?? [] as $range){
$ranges[] = [
'qty_from' => $range->qty_from,
'qty_to' => $range->qty_to,
'price' => $range->price,
];
}
$productPrices[$price->id] = [
'price_id' => $price->id,
'supplier_prod_number' => $price->supplier_prod_number,
'product_sketch' => $price->product_sketch_media,
'min_price' => $price->min_price,
'max_price' => $price->max_price,
'combination' => $combinations,
'ranges' => $ranges,
];
}
$productDetails = [
'id' => $product->id,
'sku' => $product->sku,
'name' => $product->name,
'description' => $product->description,
'category' => $product->category?->name,
'featured_image' => $product->featured_image ? [
$product->featured_image->url,
$product->featured_image->thumbnail,
$product->featured_image->preview
] :[],
'gallery_images' => $product->gallery_images,
'variations' => $productVariations,
'product_prices' => $productPrices
];
$orderItems[] = [
'item_id' => $item->id,
'product_id' => $item->product_id,
'price_id' => $item->price_id,
'quantity' => $item->quantity,
'price' => $item->price,
'customization' => json_decode($item->customization ?? '[]'),
'template' => $item->template_media,
'image' => $item->imageUrl,
'variations' => $variations,
'notes' => $item->notes,
'approved_consent' => $item->approved_consent ? 'Yes': 'No',
'product_detail' => $productDetails
];
}
return [
'rush_order' => $this->rush_order,
'shipping_address_id' => $this->shipping_address_id,
'billing_address_id' => $this->billing_address_id,
'pickup_location_id' => $this->pickup_location_id,
'delivery_date' => $this->delivery_date?->format('m-d-Y'),
'event_date' => $this->event_date?->format('m-d-Y'),
'delivery_type' => $this->delivery_type,
'description' => $this->description,
'products' => $orderItems,
];
}
}