35 lines
1003 B
PHP
35 lines
1003 B
PHP
<?php
|
|
|
|
namespace App\Domains\Commerce\Purchase\Services\Checkout;
|
|
|
|
use App\Domains\Commerce\Purchase\Models\Purchase;
|
|
use App\Domains\Core\Tenant\Models\StorefrontWebsiteType;
|
|
|
|
class PurchaseResponseLoader
|
|
{
|
|
public function load(Purchase $purchase): Purchase
|
|
{
|
|
$purchase->loadMissing('tenant.storefrontWebsiteType');
|
|
$usesEventSummary = $purchase->tenant?->storefrontWebsiteType?->checkout_summary_type
|
|
=== StorefrontWebsiteType::CHECKOUT_SUMMARY_EVENT;
|
|
$relations = [
|
|
'tenant',
|
|
'items.sourceCatalogItem.event.attachment',
|
|
'stockReservation',
|
|
];
|
|
|
|
if (! $usesEventSummary) {
|
|
$relations[] = 'items.imageAttachment';
|
|
}
|
|
|
|
if (
|
|
$purchase->status === Purchase::STATUS_IN_REVIEW
|
|
&& $purchase->payment_method === 'transfer'
|
|
) {
|
|
$relations[] = 'telepagosPaymentCandidates.payment';
|
|
}
|
|
|
|
return $purchase->load($relations);
|
|
}
|
|
}
|