store/app/Services/System/Setting/MarketplaceService.php

88 lines
4.1 KiB
PHP

<?php
namespace App\Services\System\Setting;
use App\Enums\OrderChannel;
use App\Settings\MarketplaceSettings;
class MarketplaceService
{
public function marketplaceData(): array
{
$settings = app(MarketplaceSettings::class);
return [
'tiktok_shop_enabled' => $settings->tiktok_shop_enabled,
'tiktok_shop_admin_fee' => $settings->tiktok_shop_admin_fee,
'tiktok_shop_transaction_fee' => $settings->tiktok_shop_transaction_fee,
'tiktok_shop_payment_fee' => $settings->tiktok_shop_payment_fee,
'tiktok_shop_affiliate_commission' => $settings->tiktok_shop_affiliate_commission,
'tiktok_shop_shipping_subsidy' => $settings->tiktok_shop_shipping_subsidy,
'tiktok_shop_vat_rate' => $settings->tiktok_shop_vat_rate,
'shopee_enabled' => $settings->shopee_enabled,
'shopee_commission_fee' => $settings->shopee_commission_fee,
'shopee_transaction_fee' => $settings->shopee_transaction_fee,
'shopee_service_fee' => $settings->shopee_service_fee,
'shopee_payment_fee' => $settings->shopee_payment_fee,
'shopee_affiliate_commission' => $settings->shopee_affiliate_commission,
'shopee_shipping_subsidy' => $settings->shopee_shipping_subsidy,
'shopee_voucher_fee' => $settings->shopee_voucher_fee,
];
}
public function updateMarketplace(array $validated): void
{
$settings = app(MarketplaceSettings::class);
$settings->tiktok_shop_enabled = $validated['tiktok_shop_enabled'];
$settings->tiktok_shop_admin_fee = $validated['tiktok_shop_admin_fee'];
$settings->tiktok_shop_transaction_fee = $validated['tiktok_shop_transaction_fee'];
$settings->tiktok_shop_payment_fee = $validated['tiktok_shop_payment_fee'];
$settings->tiktok_shop_affiliate_commission = $validated['tiktok_shop_affiliate_commission'];
$settings->tiktok_shop_shipping_subsidy = $validated['tiktok_shop_shipping_subsidy'];
$settings->tiktok_shop_vat_rate = $validated['tiktok_shop_vat_rate'];
$settings->shopee_enabled = $validated['shopee_enabled'];
$settings->shopee_commission_fee = $validated['shopee_commission_fee'];
$settings->shopee_transaction_fee = $validated['shopee_transaction_fee'];
$settings->shopee_service_fee = $validated['shopee_service_fee'];
$settings->shopee_payment_fee = $validated['shopee_payment_fee'];
$settings->shopee_affiliate_commission = $validated['shopee_affiliate_commission'];
$settings->shopee_shipping_subsidy = $validated['shopee_shipping_subsidy'];
$settings->shopee_voucher_fee = $validated['shopee_voucher_fee'];
$settings->save();
}
/**
* @return array<string, mixed>|null
*/
public function snapshotForChannel(OrderChannel $channel): ?array
{
$settings = app(MarketplaceSettings::class);
return match ($channel) {
OrderChannel::SHOPEE => [
'platform' => 'shopee',
'commission_fee' => $settings->shopee_commission_fee,
'transaction_fee' => $settings->shopee_transaction_fee,
'service_fee' => $settings->shopee_service_fee,
'payment_fee' => $settings->shopee_payment_fee,
'affiliate_commission' => $settings->shopee_affiliate_commission,
'shipping_subsidy' => $settings->shopee_shipping_subsidy,
'voucher_fee' => $settings->shopee_voucher_fee,
],
OrderChannel::TIKTOK => [
'platform' => 'tiktok',
'admin_fee' => $settings->tiktok_shop_admin_fee,
'transaction_fee' => $settings->tiktok_shop_transaction_fee,
'payment_fee' => $settings->tiktok_shop_payment_fee,
'affiliate_commission' => $settings->tiktok_shop_affiliate_commission,
'shipping_subsidy' => $settings->tiktok_shop_shipping_subsidy,
'vat_rate' => $settings->tiktok_shop_vat_rate,
],
OrderChannel::STORE => null,
};
}
}