[ ['tld' => '.vn', 'setupFee' => 'Miễn phí', 'firstYear' => 400000, 'renewal' => 400000], ['tld' => '.com.vn', 'setupFee' => 'Miễn phí', 'firstYear' => 300000, 'renewal' => 300000], ['tld' => '.net.vn', 'setupFee' => 'Miễn phí', 'firstYear' => 300000, 'renewal' => 300000], ['tld' => '.org.vn', 'setupFee' => 'Miễn phí', 'firstYear' => 300000, 'renewal' => 300000], ['tld' => '.com', 'setupFee' => 'Miễn phí', 'firstYear' => 320000, 'renewal' => 340000], ['tld' => '.net', 'setupFee' => 'Miễn phí', 'firstYear' => 369000, 'renewal' => 409000], ['tld' => '.org', 'setupFee' => 'Miễn phí', 'firstYear' => 339000, 'renewal' => 369000], ['tld' => '.biz', 'setupFee' => 'Miễn phí', 'firstYear' => 399000, 'renewal' => 409000], ['tld' => '.info', 'setupFee' => 'Miễn phí', 'firstYear' => 490000, 'renewal' => 509000], ['tld' => '.pro', 'setupFee' => 'Miễn phí', 'firstYear' => 469000, 'renewal' => 489000], ['tld' => '.name', 'setupFee' => 'Miễn phí', 'firstYear' => 259000, 'renewal' => 259000], ['tld' => '.ws', 'setupFee' => 'Miễn phí', 'firstYear' => 909000, 'renewal' => 909000], ['tld' => '.tv', 'setupFee' => 'Miễn phí', 'firstYear' => 765000, 'renewal' => 819000], ['tld' => '.mobi', 'setupFee' => 'Miễn phí', 'firstYear' => 589000, 'renewal' => 589000], ['tld' => '.uk', 'setupFee' => 'Miễn phí', 'firstYear' => 537000, 'renewal' => 537000], ['tld' => '.asia', 'setupFee' => 'Miễn phí', 'firstYear' => 380000, 'renewal' => 452000], ['tld' => '.me', 'setupFee' => 'Miễn phí', 'firstYear' => 1029000, 'renewal' => 1029000], ['tld' => '.us', 'setupFee' => 'Miễn phí', 'firstYear' => 323000, 'renewal' => 323000], ], 'services' => [ ['name' => 'Chứng thực Rapid SSL', 'setupFee' => 230000, 'maintenance' => 750000, 'note' => '01 Domain'], ['name' => 'Chứng thực Quick SSL', 'setupFee' => 230000, 'maintenance' => 2300000, 'note' => '01 Domain'], ['name' => 'Chứng thực Wildcard SSL', 'setupFee' => 230000, 'maintenance' => 3300000, 'note' => 'Unlimited Subdomain'], ['name' => 'Chứng thực True BusinessID', 'setupFee' => 540000, 'maintenance' => 3900000, 'note' => '01 Domain'], ['name' => 'Chứng thực True BusinessID WildCard', 'setupFee' => 900000, 'maintenance' => 15000000, 'note' => 'Unlimited Subdomain'], ['name' => 'Đăng ký DNS riêng', 'setupFee' => 200000, 'maintenance' => 'Miễn phí', 'note' => "dns1.tenmiencuaban.com\ndns2.tenmiencuaban.com"], ['name' => 'Bảo mật thông tin tên miền', 'setupFee' => 'Miễn phí', 'maintenance' => 90000, 'note' => 'Toàn bộ thông tin Whois tên miền của bạn sẽ được giấu kín hoàn toàn với mọi công cụ Whois'], ['name' => 'Khóa tên miền', 'setupFee' => 'Miễn phí', 'maintenance' => 'Miễn phí', 'note' => 'Tăng cường bảo mật cho tên miền'], ], ]; } /** * GET /administrator/domain-pricing */ public function index(): JsonResponse { $setting = Setting::where('key', 'domain_pricing')->first(); if ($setting && !empty($setting->value)) { $value = json_decode((string) $setting->value, true); if (is_array($value) && !empty($value)) { return response()->json([ 'error' => false, 'data' => $value, 'message' => 'Lấy bảng giá tên miền thành công.', ]); } } return response()->json([ 'error' => false, 'data' => $this->getDefaultData(), 'message' => 'Lấy bảng giá tên miền thành công (mặc định).', ]); } /** * PUT /administrator/domain-pricing */ public function update(Request $request): JsonResponse { $validator = Validator::make($request->all(), [ 'domains' => 'sometimes|array', 'services' => 'sometimes|array', ]); if ($validator->fails()) { return response()->json([ 'error' => true, 'message' => $validator->errors()->first(), ], 422); } $current = Setting::where('key', 'domain_pricing')->first(); $existing = $current ? json_decode((string) $current->value, true) : $this->getDefaultData(); if ($request->has('domains')) { $existing['domains'] = $request->input('domains'); } if ($request->has('services')) { $existing['services'] = $request->input('services'); } Setting::updateOrCreate( ['key' => 'domain_pricing'], ['value' => json_encode($existing, JSON_UNESCAPED_UNICODE)] ); return response()->json([ 'error' => false, 'message' => 'Cập nhật bảng giá tên miền thành công.', 'data' => $existing, ]); } /** * POST /administrator/domain-pricing/reset * Reset to default values. */ public function reset(): JsonResponse { $default = $this->getDefaultData(); Setting::updateOrCreate( ['key' => 'domain_pricing'], ['value' => json_encode($default, JSON_UNESCAPED_UNICODE)] ); return response()->json([ 'error' => false, 'message' => 'Đã reset bảng giá tên miền về mặc định.', 'data' => $default, ]); } }