updat
This commit is contained in:
@@ -24,11 +24,16 @@ class ProductService
|
||||
// Create product
|
||||
$product = $this->repository->create($productData);
|
||||
|
||||
// Sync OS versions if provided
|
||||
// Sync OS versions if provided (for VPS)
|
||||
if (!empty($data['os_ids'])) {
|
||||
$product->osVersions()->sync($data['os_ids']);
|
||||
}
|
||||
|
||||
// Sync Control Panels if provided (for Hosting)
|
||||
if (!empty($data['control_panel_ids'])) {
|
||||
$this->saveControlPanels($product, $data);
|
||||
}
|
||||
|
||||
// Save pricing cycles if provided
|
||||
if (!empty($data['pricing'])) {
|
||||
$this->savePricings($product, $data['pricing'], $data['currency'] ?? 'USD');
|
||||
@@ -48,11 +53,16 @@ class ProductService
|
||||
// Get the product for relationships
|
||||
$product = $this->repository->find($id);
|
||||
|
||||
// Sync OS versions if provided
|
||||
// Sync OS versions if provided (for VPS)
|
||||
if (isset($data['os_ids'])) {
|
||||
$product->osVersions()->sync($data['os_ids']);
|
||||
}
|
||||
|
||||
// Sync Control Panels if provided (for Hosting)
|
||||
if (isset($data['control_panel_ids'])) {
|
||||
$this->saveControlPanels($product, $data);
|
||||
}
|
||||
|
||||
// Save pricing cycles if provided
|
||||
if (!empty($data['pricing'])) {
|
||||
$this->savePricings($product, $data['pricing'], $data['currency'] ?? 'USD');
|
||||
@@ -95,6 +105,26 @@ class ProductService
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Save Control Panels for product (for Hosting)
|
||||
*/
|
||||
private function saveControlPanels($product, array $data): void
|
||||
{
|
||||
$syncData = [];
|
||||
|
||||
foreach ($data['control_panel_ids'] as $panelId) {
|
||||
$priceModifier = $data['control_panel_price_modifiers'][$panelId] ?? 0;
|
||||
$isDefault = isset($data['control_panel_default']) && $data['control_panel_default'] == $panelId;
|
||||
|
||||
$syncData[$panelId] = [
|
||||
'price_modifier' => $priceModifier,
|
||||
'is_default' => $isDefault,
|
||||
];
|
||||
}
|
||||
|
||||
$product->controlPanels()->sync($syncData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Prepare data for create/update
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user