feat: add GeneratesUniqueSlug class for unique slug generation
feat: create PostCategoryFactory for generating post category data feat: create PostFactory for generating post data feat: add retry_requested_at column to services table feat: add vcenter provisioning fields to products table feat: add module_host_id to os table feat: create email_notification_templates table for email templates feat: add scenario and format fields to template table feat: add admin fields to transactions table fix: update ticket table columns and types feat: add uuid to ticket table and backfill existing records fix: make ticket_reply user_id nullable feat: create notifications table for user notifications fix: make ticket uuid nullable feat: create post_categories table for blog categories feat: create posts table for blog posts feat: add invoice email template for PDF generation
This commit is contained in:
@@ -15,19 +15,33 @@ class ServiceResource extends JsonResource
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
$billingCycleLabels = [
|
||||
'monthly' => 'Hàng tháng',
|
||||
'quarterly' => 'Hàng quý',
|
||||
'semi_annually' => 'Nửa năm',
|
||||
'annually' => 'Hàng năm',
|
||||
'onetime' => 'Một lần',
|
||||
'monthly' => 'Hàng tháng',
|
||||
'quarterly' => 'Hàng quý',
|
||||
'semiannually' => 'Nửa năm',
|
||||
'annually' => 'Hàng năm',
|
||||
'biennially' => '2 năm',
|
||||
'triennially' => '3 năm',
|
||||
'onetime' => 'Một lần',
|
||||
];
|
||||
|
||||
$periodUnits = [
|
||||
'monthly' => 'month',
|
||||
'quarterly' => 'quarter',
|
||||
'semi_annually' => 'semi_year',
|
||||
'annually' => 'year',
|
||||
'onetime' => 'none',
|
||||
'monthly' => 'month',
|
||||
'quarterly' => 'quarter',
|
||||
'semiannually' => 'semi_year',
|
||||
'annually' => 'year',
|
||||
'biennially' => 'biennially',
|
||||
'triennially' => 'triennially',
|
||||
'onetime' => 'none',
|
||||
];
|
||||
|
||||
$periodMonths = [
|
||||
'monthly' => 1,
|
||||
'quarterly' => 3,
|
||||
'semiannually' => 6,
|
||||
'annually' => 12,
|
||||
'biennially' => 24,
|
||||
'triennially' => 36,
|
||||
'onetime' => 0,
|
||||
];
|
||||
|
||||
return [
|
||||
@@ -62,20 +76,17 @@ class ServiceResource extends JsonResource
|
||||
])->values(),
|
||||
];
|
||||
})->values(),
|
||||
'pricing' => $this->pricings->map(fn($p) => [
|
||||
'id' => $p->id,
|
||||
'name' => $billingCycleLabels[$p->billing_cycle] ?? $p->billing_cycle,
|
||||
'price' => (int) $p->price,
|
||||
'price_sale' => $p->price_sale ? (int) $p->price_sale : null,
|
||||
'period' => $p->billing_cycle ? (int) match($p->billing_cycle) {
|
||||
'monthly' => 1,
|
||||
'quarterly' => 3,
|
||||
'semi_annually' => 6,
|
||||
'annually' => 12,
|
||||
default => 1,
|
||||
} : 1,
|
||||
'period_unit' => $periodUnits[$p->billing_cycle] ?? 'month',
|
||||
]),
|
||||
'pricing' => $this->pricings
|
||||
->sortBy(fn($p) => $periodMonths[$p->billing_cycle] ?? 999)
|
||||
->values()
|
||||
->map(fn($p) => [
|
||||
'id' => $p->id,
|
||||
'name' => $billingCycleLabels[$p->billing_cycle] ?? $p->billing_cycle,
|
||||
'price' => (int) $p->price,
|
||||
'price_sale' => $p->price_sale ? (int) $p->price_sale : null,
|
||||
'period' => $periodMonths[$p->billing_cycle] ?? 1,
|
||||
'period_unit' => $periodUnits[$p->billing_cycle] ?? 'month',
|
||||
]),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user