import { createRouter, createWebHashHistory } from "vue-router";
import HomeIndex from "../views/HomeIndex.vue";
import AppIndex from "../views/index/Index.vue";
import MarketIndex from "../views/market/Index.vue";
import AssetIndex from "../views/asset/Index.vue";
import UserIndex from "../views/user/Index.vue";
import ApplyPermission from "../views/index/ApplyPermission.vue";
import SplashScreen from "../views/index/SplashScreen.vue";
import RiskTips from "../views/index/RiskTips.vue";
import SearchIcon from "../views/index/SearchIcon.vue";
import Notification from "../views/notification/Index.vue";
import IndexUser from "../views/index/User.vue";
import UserCenter from "../views/index/UserCenter.vue";
import MarketDetails from "../views/market/details/Index.vue";
import HistoryIndex from "../views/asset/history/Index.vue";
import EntrustDetails from "../views/asset/history/EntrustDetails.vue";
import PositionDetails from "../views/asset/history/PositionDetails.vue";
import IcoIndex from "../views/index/ico/Index.vue";
import LoanIndex from "../views/index/loan/Index.vue";
import LoanRules from "../views/index/loan/Rules.vue";
import UserLoanIndex from "../views/user/loan/Index.vue";
import CommitMessage from "../views/index/loan/CommitMessage.vue";
import ContractTerms from "../views/index/loan/ContractTerms.vue";
import Signature from "../views/index/loan/Signature.vue";
import DeleteAccount from "../views/user/DeleteAccount.vue";
import RechargeIndex from "../views/index/recharge/RechargeIndex.vue";
import WithdrawIndex from "../views/index/recharge/WithdrawIndex.vue";
import RechargeChangeCoin from "../views/index/recharge/ChangeCoin.vue";
import Transfer from "../views/index/recharge/Transfer.vue";
import TransferHistory from "../views/index/recharge/TransferHistory.vue";
import UserAsset from "../views/asset/UserAsset.vue";
import OTCMessageIndex from "@/views/asset/otc/message/Index.vue";
import OTCOrderIndex from "@/views/asset/otc/order/Index.vue";
import OTCTransactionIndex from "@/views/asset/otc/transaction/Index.vue";
import OTCUserIndex from "@/views/asset/otc/user/Index.vue";
import CloudCalculator from "@/views/index/cloudComputingPower/Calculator.vue";
import StakingIndex from "@/views/index/staking/Index.vue";
import StakingRules from "@/views/index/staking/Rules.vue";
import StakingRecord from "@/views/index/staking/Record.vue";
import OTCIndex from "@/views/asset/otc/Index.vue";
import MyPower from "@/views/index/cloudComputingPower/MyPower.vue";
import MiningOutput from "@/views/index/cloudComputingPower/MiningOutput.vue";
import ElectricityRecharge from "@/views/index/cloudComputingPower/ElectricityRecharge.vue";
import ElectricitySetting from "@/views/index/cloudComputingPower/ElectricitySetting.vue";
import ElectricityBill from "@/views/index/cloudComputingPower/ElectricityBill.vue";
import CloudMyOrder from "@/views/index/cloudComputingPower/MyOrder.vue";
import CloudComPowerIndex from "@/views/index/cloudComputingPower/Index.vue";
import ComboDetails from "@/views/index/cloudComputingPower/ComboDetails.vue";
import RechargeHistory from "../views/index/recharge/RechargeHistory.vue";
import WithdrawHistory from "../views/index/recharge/WithdrawHistory.vue";
import FinancialIndex from "../views/index/financial/Index.vue";
import FinancialBuy from "../views/index/financial/Buy.vue";
import MyFinancial from "../views/index/financial/MyFinancial.vue";
import AddzfbAccount from "@/views/asset/otc/transaction/AddzfbAccount.vue";
import AddBankAccount from "@/views/asset/otc/transaction/AddBankAccount.vue";
import OTCMerchantDetails from "@/views/asset/otc/user/MerchantDetails.vue";
import MyFollow from "@/views/asset/otc/user/MyFollow.vue";
import LevelLimit from "@/views/asset/otc/user/LevelLimit.vue";
import TransactionGuide from "@/views/asset/otc/user/TransactionGuide.vue";
import OTCCustomService from "@/views/asset/otc/message/CustomerService.vue";
import CommonFunctionsPopup from "@/views/bitcoin/CommonFunctionsPopup/CommonFunctionsPopup.vue"; // 子组件路径
import TradeRules from "@/views/bitcoin/CommonFunctionsPopup/GeneralLevel2/TradeRules.vue"; // 新建
import TradeLayout from "@/views/bitcoin/TradeLayout.vue"; // 新建的公共父组件
import TradeFutures from "@/views/bitcoin/TradeFutures.vue"; // （合约）
import TradeSeconds from "@/views/bitcoin/lever/TradeSeconds.vue"; // 秒合约（占位）
import TradeOptions from "@/views/bitcoin/lever/TradeOptions.vue"; // 期权（占位）
import TradeMargin from "@/views/bitcoin/lever/TradeMargin.vue";
import Calculator from "../views/bitcoin/Calculator.vue"; // 新建的计算器页面
import TradeSettings from "@/views/bitcoin/CommonFunctionsPopup/GeneralLevel2/TradeSettings.vue"; // 新建
import OptionTrading from "@/views/bitcoin/lever/OptionTrading.vue";
import AddressAuth from "@/views/user/AddressAuth.vue";
import RelativeAuth from "@/views/user/RelativeAuth.vue";
import LanguageSwitch from "@/views/user/LanguageSwitch.vue"; //语言国际化

const routes = [
  {
    path: "/",
    name: "home",
    component: SplashScreen,
  },
  {
    path: "/index",
    name: "index",
    component: HomeIndex,
    children: [
      {
        path: "",
        name: "appIndex",
        component: AppIndex,
      },
      {
        path: "/marketIndex",
        name: "marketIndex",
        component: MarketIndex,
      },
      {
        path: "/bitcoin",
        component: TradeLayout, // 而是布局组件
        // 当访问 /bitcoin 时，自动重定向到 /bitcoin/contract
        redirect: "/bitcoin/CryptocurrencyTrading",
        children: [
          // 1. 核心交易子路由
          {
            path: "contract",
            name: "TradeContract",
            component: TradeFutures, // 核心交易逻辑
            meta: { title: "合约" },
          },
          {
            path: "seconds",
            name: "TradeSeconds",
            component: TradeSeconds,
            meta: { title: "秒合约" },
          },
          {
            path: "options",
            name: "TradeOptions",
            component: TradeOptions,
            meta: { title: "期权" },
          },
          {
            path: "CryptocurrencyTrading",
            name: "Cryptocurrency",
            component: () => import("@/views/bitcoin/lever/CryptocurrencyTrading.vue"),
            meta: { title: "币币交易" },
          },
          {
            path: "margin",
            name: "TradeMargin",
            component: TradeMargin,
            meta: { title: "杠杆" },
          },
          {
            path: "settings",
            name: "TradeSettings",
            component: TradeSettings,
          },
        ],
      },
      { path: "calculator", name: "calculator", component: Calculator },
      {
        path: "OptionTrading",
        name: "OptionTrading",
        component: OptionTrading,
        meta: { title: "" },
      },
      {
        path: "/assetIndex",
        name: "assetIndex",
        component: AssetIndex,
      },
      {
        path: "/userIndex",
        name: "userIndex",
        component: UserIndex,
      },
    ],
  },
  {
    path: "/AdvancedCertification",
    name: "AdvancedCertification",
    component: () => import("@/views/user/AdvancedCertification.vue"),
    meta: { title: "" },
  },
  {
    path: "/PnLAnalysis",
    name: "PnLAnalysis",
    component: () => import("@/views/bitcoin/lever/PnLAnalysis.vue"),
    meta: { title: "" },
  },
  {
    path: "/otcIndex",
    name: "otcIndex",
    component: OTCIndex,
    children: [
      {
        path: "",
        name: "otcTransactionIndex",
        component: OTCTransactionIndex,
      },
      {
        path: "/otcMessageIndex",
        name: "otcMessageIndex",
        component: OTCMessageIndex,
      },
      {
        path: "/otcOrderIndex",
        name: "otcOrderIndex",
        component: OTCOrderIndex,
      },
      {
        path: "/otcUserIndex",
        name: "otcUserIndex",
        component: OTCUserIndex,
      },
    ],
  },
  {
    path: "/detail",
    name: "HelpCenter",
    // 记得创建这个 Detail.vue 文件
    component: () => import("@/views/user/HelpCenter.vue"),
  },
  {
    // 动态路由，接收一个 id 参数
    path: "/help/detail",
    name: "HelpDetail",
    component: () => import("@/views/user/HelpDetail.vue"),
  },
  {
    path: "/about",
    name: "AboutUs",
    component: () => import("@/views/user/AboutUs.vue"),
  },
  {
    path: "/about/privacy",
    name: "PrivacyPolicy",
    component: () => import("@/views/user/PrivacyPolicy.vue"),
  },
  {
    path: "/about/agreement",
    name: "UserAgreement",
    component: () => import("@/views/user/UserAgreement.vue"),
  },
  {
    path: "/invite",
    name: "InviteCenter",
    component: () => import("@/views/user/InviteCenter.vue"), // 上面的组件
  },
  {
    path: "/invite/poster/:code",
    name: "InvitePoster",
    component: () => import("@/views/user/InvitePoster.vue"),
  },
  {
    path: "/vip",
    name: "VipCenter",
    component: () => import("@/views/user/VipCenter.vue"),
  },
  {
    path: "/vip/rules",
    name: "VipRules",
    component: () => import("@/views/user/VipRules.vue"),
  },
  {
    path: "/kyc/step1",
    name: "KycForm",
    component: () => import("@/views/user/KycForm.vue"), // 填写表单
  },
  {
    path: "/kyc/step2",
    name: "KycUpload",
    component: () => import("@/views/user/KycUpload.vue"), // 上传证件
  },
  {
    path: "/security",
    name: "SecuritySettings",
    component: () => import("@/views/user/SecuritySettings.vue"), // 核心页面
  },
  {
    path: "/set-password",
    name: "SetPassword",
    component: () => import("@/views/user/SetPassword.vue"), // 新页面
  },
  {
    path: "/delete-account",
    name: "DeleteAccount",
    component: () => import("@/views/user/DeleteAccount.vue"), // 新页面
  },
  {
    // 地址认证：复用同一个组件，通过 query 参数 type 来区分是 "home" 还是 "work"
    path: "/auth/address",
    name: "address-auth",
    component: AddressAuth,
  },
  {
    // 亲属认证
    path: "/auth/relative",
    name: "relative-auth",
    component: RelativeAuth,
  },
  {
    path: "/language",
    name: "LanguageSwitch",
    component: LanguageSwitch,
    meta: { title: "切换语言" },
  },
  {
    path: "/basic-verify",
    name: "BasicVerify",
    component: () => import("@/views/user/BasicVerify.vue"),
    meta: { title: "基础认证" },
  },

  {
    path: "/applyPermission",
    name: "applyPermission",
    component: ApplyPermission,
  },
  {
    path: "/splashScreen",
    name: "splashScreen",
    component: SplashScreen,
  },
  {
    path: "/riskTips",
    name: "riskTips",
    component: RiskTips,
  },
  {
    path: "/searchIcon",
    name: "searchIcon",
    component: SearchIcon,
  },
  {
    path: "/notification",
    name: "notification",
    component: Notification,
  },
  {
    path: "/indexUser",
    name: "indexUser",
    component: IndexUser,
  },
  {
    path: "/userCenter",
    name: "userCenter",
    component: UserCenter,
  },
  {
    path: "/marketDetails",
    name: "marketDetails",
    component: MarketDetails,
  },
  {
    path: "/historyIndex",
    name: "historyIndex",
    component: HistoryIndex,
  },
  {
    path: "/entrustDetails",
    name: "entrustDetails",
    component: EntrustDetails,
  },
  {
    path: "/positionDetails",
    name: "positionDetails",
    component: PositionDetails,
  },
  {
    path: "/icoIndex",
    name: "icoIndex",
    component: IcoIndex,
  },
  {
    path: "/loanIndex",
    name: "loanIndex",
    component: LoanIndex,
  },
  {
    path: "/loanRules",
    name: "loanRules",
    component: LoanRules,
  },
  {
    path: "/userLoanIndex",
    name: "userLoanIndex",
    component: UserLoanIndex,
  },
  {
    path: "/commitMessage",
    name: "commitMessage",
    component: CommitMessage,
  },
  {
    path: "/contractTerms",
    name: "contractTerms",
    component: ContractTerms,
  },
  {
    path: "/signature",
    name: "signature",
    component: Signature,
  },
  {
    path: "/deleteAccount",
    name: "deleteAccount",
    component: DeleteAccount,
  },
  {
    path: "/rechargeIndex",
    name: "rechargeIndex",
    component: RechargeIndex,
  },
  {
    path: "/rechargeChangeCoin",
    name: "rechargeChangeCoin",
    component: RechargeChangeCoin,
  },
  {
    path: "/withdrawIndex",
    name: "withdrawIndex",
    component: WithdrawIndex,
  },
  {
    path: "/transfer",
    name: "transfer",
    component: Transfer,
  },
  {
    path: "/transferHistory",
    name: "transferHistory",
    component: TransferHistory,
  },
  {
    path: "/userAsset",
    name: "userAsset",
    component: UserAsset,
  },
  {
    path: "/applyPermission",
    name: "applyPermission",
    component: ApplyPermission,
  },
  {
    path: "/splashScreen",
    name: "splashScreen",
    component: SplashScreen,
  },
  {
    path: "/riskTips",
    name: "riskTips",
    component: RiskTips,
  },
  {
    path: "/searchIcon",
    name: "searchIcon",
    component: SearchIcon,
  },
  {
    path: "/notification",
    name: "notification",
    component: Notification,
  },
  {
    path: "/indexUser",
    name: "indexUser",
    component: IndexUser,
  },
  {
    path: "/userCenter",
    name: "userCenter",
    component: UserCenter,
  },
  {
    path: "/marketDetails",
    name: "marketDetails",
    component: MarketDetails,
  },
  {
    path: "/historyIndex",
    name: "historyIndex",
    component: HistoryIndex,
  },
  {
    path: "/entrustDetails",
    name: "entrustDetails",
    component: EntrustDetails,
  },
  {
    path: "/positionDetails",
    name: "positionDetails",
    component: PositionDetails,
  },
  {
    path: "/icoIndex",
    name: "icoIndex",
    component: IcoIndex,
  },
  {
    path: "/loanIndex",
    name: "loanIndex",
    component: LoanIndex,
  },
  {
    path: "/loanRules",
    name: "loanRules",
    component: LoanRules,
  },
  {
    path: "/userLoanIndex",
    name: "userLoanIndex",
    component: UserLoanIndex,
  },
  {
    path: "/rechargeHistory",
    name: "rechargeHistory",
    component: RechargeHistory,
  },
  {
    path: "/withdrawHistory",
    name: "withdrawHistory",
    component: WithdrawHistory,
  },
  {
    path: "/financialIndex",
    name: "financialIndex",
    component: FinancialIndex,
  },
  {
    path: "/financialBuy/:id",
    name: "financialBuy",
    component: FinancialBuy,
  },
  {
    path: "/myFinancial",
    name: "myFinancial",
    component: MyFinancial,
  },
  {
    path: "/cloudComPowerIndex",
    name: "cloudComPowerIndex",
    component: CloudComPowerIndex,
  },
  {
    path: "/comboDetails",
    name: "comboDetails",
    component: ComboDetails,
  },
  {
    path: "/myPower",
    name: "myPower",
    component: MyPower,
  },
  {
    path: "/miningOutput",
    name: "miningOutput",
    component: MiningOutput,
  },
  {
    path: "/electricityRecharge",
    name: "electricityRecharge",
    component: ElectricityRecharge,
  },
  {
    path: "/electricitySetting",
    name: "electricitySetting",
    component: ElectricitySetting,
  },
  {
    path: "/electricityBill",
    name: "electricityBill",
    component: ElectricityBill,
  },
  {
    path: "/cloudMyOrder",
    name: "cloudMyOrder",
    component: CloudMyOrder,
  },
  {
    path: "/cloudCalculator",
    name: "cloudCalculator",
    component: CloudCalculator,
  },
  {
    path: "/stakingIndex",
    name: "stakingIndex",
    component: StakingIndex,
  },
  {
    path: "/stakingRules",
    name: "stakingRules",
    component: StakingRules,
  },
  {
    path: "/stakingRecord",
    name: "stakingRecord",
    component: StakingRecord,
  },
  {
    path: "/addzfbAccount",
    name: "addzfbAccount",
    component: AddzfbAccount,
  },
  {
    path: "/addBankAccount",
    name: "addBankAccount",
    component: AddBankAccount,
  },
  {
    path: "/OTCMerchantDetails",
    name: "OTCMerchantDetails",
    component: OTCMerchantDetails,
  },
  {
    path: "/myFollow",
    name: "myFollow",
    component: MyFollow,
  },
  {
    path: "/levelLimit",
    name: "levelLimit",
    component: LevelLimit,
  },
  {
    path: "/transactionGuide",
    name: "transactionGuide",
    component: TransactionGuide,
  },
  {
    path: "/OTCCustomService/:chatId/:otcId",
    name: "OTCCustomService",
    component: OTCCustomService,
  },
];

const router = createRouter({
  history: createWebHashHistory(),
  routes,
});

export default router;
