Viewing File: /home/ubuntu/vedadeals-backend-base/app/Http/Resources/ProductResource.php
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Facades\Cache;
use App\Models\{ User };
class ProductResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
*/
public function toArray($request)
{
$user_wishlist_product_ids = $user_cart_product_ids = [];
if($request->id) {
$user_wishlist_product_ids = Cache::get("user_wishlists_$request->id") ? : [];
$user_cart_product_ids = Cache::get("user_carts_$request->id") ? : [];
}
$sub_days = strtotime(now()->subDays(15)->format('Y-m-d H:i:s'));
return [
'product_id' => $this->id,
'product_unique_id' => $this->unique_id,
'name' => $this->name,
'category_name' => $this->category->name,
'sub_category_name' => $this->subCategory->name,
'file' => $this->file,
'quantity' => $this->quantity,
'gross_weight' => $this->gross_weight,
'unit' => $this->unit,
'gross_weight_formatted' => $this->gross_weight.' '.$this->unit,
'description_formatted' => $this->description_formatted,
'total_orders' => $this->order_products_count ? : 0,
'discount_tag' => $this->discount_price ? formatted_discount($this->discount->discount_type, $this->discount->discount) : '',
'stock_availablity_formatted' => stock_availablity_formatted($this->quantity),
'original_price' => round($this->original_price),
'selling_price' => round($this->price),
'discount_price' => round($this->discount_price),
'original_price_formatted' => formatted_amount($this->original_price),
'selling_price_formatted' => formatted_amount($this->price),
'discount_price_formatted' => formatted_amount($this->discount_price),
'stock_status' => $this->stock_status,
'status' => $this->status,
'product_inventory' => new ProductInventoryResource($this->whenLoaded('productInventory')),
'product_files' => ProductFileResource::collection($this->whenLoaded('productFiles')),
'is_wishlisted' => in_array($this->id, $user_wishlist_product_ids) ? YES : NO,
'is_carted' => in_array($this->id, $user_cart_product_ids) ? YES : NO,
'review_stars' => number_format($this->reviews_avg_star, 1),
'thc_avg' => cannabidiol_avg($this->thc_from ? : 0, $this->thc_to ? : 0),
'cbd_avg' => cannabidiol_avg($this->cbd_from ? : 0, $this->cbd_to ? : 0),
'thc_drug_content' => $this->thc_drug_content,
'thc_formatted' => cannabidiol_formatted($this->thc_from, $this->thc_to, $this->thc_unit, request('decimal') ? : 0),
'thc_per_formatted' => cannabidiol_per_formatted($this->thc_per_from, $this->thc_per_to, $this->thc_per_unit, request('decimal') ? : 0),
'cbd_drug_content' => $this->cbd_drug_content,
'cbd_formatted' => cannabidiol_formatted($this->cbd_from, $this->cbd_to, $this->cbd_unit, request('decimal') ? : 0),
'cbd_per_formatted' => cannabidiol_per_formatted($this->cbd_per_from, $this->cbd_per_to, $this->cbd_per_unit, request('decimal') ? : 0),
'is_new' => strtotime($this->created_at) > $sub_days ? YES : NO,
];
}
}
Back to Directory
File Manager