import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:getx_scaffold/getx_scaffold.dart';
import 'package:ln_jq_app/common/styles/theme.dart';
import 'package:ln_jq_app/storage_service.dart';

class UrlHostController extends GetxController {
  final TextEditingController urlController = TextEditingController();

  // 预设的域名列表
  final List<String> presetUrls = [
    'https://beta-esg.api.lnh2e.com/', // 测试环境
    'http://47.101.201.13:8443/api/', // 测试环境
    'http://192.168.110.44:8080/', // 沈辰本地
    'http://192.168.110.222:8080/', // 何斐本地
  ];

  final List<String> urlNames = [
    '测试环境',
    '线上环境',
    '沈辰本地环境',
    '何斐本地环境',
  ];

  @override
  void onInit() {
    super.onInit();
    // 初始化时，尝试从 StorageService 获取已保存的域名
    // 如果没有保存过，则使用当前的全局配置
    String? savedUrl = StorageService.to.hostUrl;
    if (savedUrl != null && savedUrl.isNotEmpty) {
      urlController.text = savedUrl;
    } else {
      urlController.text = AppTheme.test_service_url;
    }
  }

  /// 当用户点击列表中的某一项时，将其填入编辑框
  void selectUrl(String url) {
    urlController.text = url;
  }

  /// 保存配置并关闭页面
  void saveAndExit() async {
    String newUrl = urlController.text.trim();
    if (newUrl.isEmpty) {
      showToast('请输入有效的域名');
      return;
    }

    //  保存到本地存储，以便下次启动时加载
    await StorageService.to.saveHostUrl(newUrl);
    AppTheme.test_service_url = newUrl;

    //设置框架
    HttpService.to.setBaseUrl(AppTheme.test_service_url);

    showSuccessToast('域名已更新:${AppTheme.test_service_url}');
    Get.back();
  }

  @override
  void onClose() {
    urlController.dispose();
    super.onClose();
  }
}
