update email template
This commit is contained in:
@@ -27,6 +27,9 @@ class ProductResource extends JsonResource
|
||||
'page_type' => $this->resolvePageType($this->product_type),
|
||||
'product_categories_id' => $this->whenLoaded('category', fn() => $this->category?->id),
|
||||
'category' => $this->whenLoaded('category', fn() => $this->category?->name),
|
||||
// Which billing_cycle values this product's category expects (drives cycle
|
||||
// pickers in the UI) — e.g. domain is annual-only, IT service can be one_time.
|
||||
'category_billing_cycles' => $this->whenLoaded('category', fn() => $this->category?->billing_cycles),
|
||||
'service_plan_id' => $this->service_plan_id,
|
||||
'cpu' => $this->cpu,
|
||||
'ram' => $this->ram,
|
||||
@@ -37,18 +40,21 @@ class ProductResource extends JsonResource
|
||||
'setup_fee' => $this->setup_fee,
|
||||
'min_price' => $minPrice,
|
||||
'billing_type' => $this->whenLoaded('pricings', function () {
|
||||
$hasOnetime = $this->pricings->where('billing_cycle', 'onetime')->isNotEmpty();
|
||||
$hasRecurring = $this->pricings->where('billing_cycle', '!=', 'onetime')->isNotEmpty();
|
||||
return ($hasOnetime && !$hasRecurring) ? 'onetime' : 'recurring';
|
||||
// 'one_time' (with underscore) is the convention used everywhere else in the
|
||||
// app (OrderHelper::cycleToMonths, ServiceExpiry, renewService, product_pricings
|
||||
// migration comment) — this used to check 'onetime' and never matched real rows.
|
||||
$hasOnetime = $this->pricings->where('billing_cycle', 'one_time')->isNotEmpty();
|
||||
$hasRecurring = $this->pricings->where('billing_cycle', '!=', 'one_time')->isNotEmpty();
|
||||
return ($hasOnetime && !$hasRecurring) ? 'one_time' : 'recurring';
|
||||
}),
|
||||
'currency' => $this->whenLoaded('pricings', fn () => $this->pricings->first()?->currency ?? 'VND'),
|
||||
'price_monthly' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'monthly'))->price),
|
||||
'price_quarterly' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'quarterly'))->price),
|
||||
'price_semiannually' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'semiannually'))->price),
|
||||
'price_semiannually' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'semi_annually'))->price),
|
||||
'price_annually' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'annually'))->price),
|
||||
'price_biennially' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'biennially'))->price),
|
||||
'price_triennially' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'triennially'))->price),
|
||||
'price_onetime' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'onetime'))->price),
|
||||
'price_onetime' => $this->whenLoaded('pricings', fn () => optional($this->pricings->firstWhere('billing_cycle', 'one_time'))->price),
|
||||
'is_active' => $this->is_active,
|
||||
'created_at' => $this->created_at,
|
||||
'os_ids' => $osIds,
|
||||
|
||||
Reference in New Issue
Block a user