import path from 'node:path'

import type { RuntimeConfig } from '../types/runtime-config.js'

export function createDefaultRuntimeConfig(projectRoot: string): RuntimeConfig {
  return {
    server: {
      port: 3000,
    },

    browser: {
      chromePath: '',
      headless: null,
      devtools: null,
      keepAlive: null,
      prewarm: null,
      slowMoMs: null,
      vncResolution: '1600x900x24',
    },

    session: {
      debug: false,
    },

    ocr: {
      baseUrl: '',
    },

    data: {
      root: path.resolve(projectRoot, 'data'),
    },

    logging: {
      level: 'info',
    },

    database: {
      url: 'postgres://postgres:postgres@127.0.0.1:5432/order_site',
      ssl: false,
      maxConnections: 10,
    },

    orders: {
      claimBaseUrl: 'http://127.0.0.1:5173/#/claim',
      tokenTtlHours: 24,
    },

    admin: {
      sessionSecret: '',
      sessionTtlHours: 12,
      defaultUsers: [],
    },

    platforms: {
      agiso: {
        appSecret: '',
        tradeDetail: {
          endpoint: 'https://gw-api.agiso.com/aldsIdle/Order/Detail',
          apiVersion: '1',
          timeoutMs: 5000,
        },
        autoDelivery: {
          enabled: true,
          endpoint: 'https://gw-api.agiso.com/aldsIdle/Order/DummySend',
          apiVersion: '1',
        },
        messaging: {
          enabled: false,
          sendMessageEndpoint: 'https://gw-api.agiso.com/aldsIdle/ImMsg/SendMsg',
          apiVersion: '1',
          messageTemplate: '您的订单 {platformOrderId} 已创建领取链接，请在 {expiredAt} 前完成领取：{claimUrl}',
          autoDeliveryMessageTemplate: '您的订单 {platformOrderId} 已完成自动发货，请注意查收。',
          shops: {},
        },
      },
      ninetyone: {
        userId: '',
        secret: '',
        version: '1.0',
        shopId: '91kaquan',
        shopName: '91卡券',
        timestampToleranceSeconds: 600,
        cardsEncoding: 'aes-256-ecb-base64',
      },
      cloudtentacles: {
        baseUrl: 'https://123.207.217.176',
        timeoutMs: 5000,
        sendSmsPath: '/public/verif_code',
        loginPath: '/public/login',
        userInfoPath: '/user/info',
        assetPath: '/user/get_asset',
        permissionPath: '/user/get_permission',
        categoriesPath: '/categories/get',
        skuListPath: '/sku/list',
        skuBuyPath: '/sku/buy',
        skuUsePath: '/sku/use',
        knapsackPath: '/user/get_knapsack',
        vnListPath: '/vn/list',
        vnAppointPath: '/vn/appoint',
        vnGenerateLoginCodePath: '/vn/generate_login_code',
        vnVerifCodePath: '/public/vn_verif_code',
        vnVerifyLoginCodePath: '/vn/verify_login_code',
        vnBindUrlPath: '/vn/bind_url',
        vnBindInfoPath: '/vn/bind_info',
        vnBackPath: '/vn/back',
        bindUrlTtlSeconds: 600,
        bindUrlProbeIntervalSeconds: 30,
        bindUrlProbeTimeoutMs: 5000,
        bindUrlProbeUserAgent: 'Mozilla/5.0 (Linux; Android 12; M2012K11AC Build/SKQ1.211006.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/98.0.4758.102 MQQBrowser/6.2 TBS/046141 Mobile Safari/537.36 V1_AND_SQ_8.8.85_2674_YYB_D QQ/8.8.85.7685 NetType/WIFI WebP/0.3.0 Pixel/1080 StatusBarHeight/108 SimpleUISwitch/0 QQTheme/1000',
        bindUrlProbeEndpoint: 'https://comm.ams.game.qq.com/ide/',
        bindUrlProbeChartId: '323794',
        bindUrlProbeSubChartId: '323794',
        bindUrlProbeIdeToken: 'z90Syo',
        bindUrlProbeActivityUrl: 'http%3A%2F%2Fgp.qq.com%2Fcp%2Fa20240828cmcc%2F',
        bindUrlProbeReferer: 'https://gp.qq.com/',
        bindUrlProbeExtraCookie: '',
        clientSource: 'ct-client',
        deviceId: '-',
        deviceType: 0,
        publicKeyPem: `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsSzjk+9st2f8IpYqYaM5
F7K27ZR2IvzxTr2w4zgZAS2+BRdgMvXUOITdFQT+ytYF/r3pIgTkL7MF9UQuylmb
S57DiqGBLNBS7FzKyYzWTOc9yYA3+KrarbvpUn/Bm3UK+KKB17viPy+0pnNAHysJ
pzqadmAtQhI1ZDujJ2sW+FkV/pC8KIFahiyPIHjncy1ZG/BbRF3BDhvDcr6O7scO
GsHstGf9XsZBIITS5LYmlai7OdY4ZIVxUtQbfWzibihO+YDJJzFgt47drX0Ajo85
PfQTPNA++KsXtwRX9M6Re3vkTDRsutIIWKtj8jqhUbbYS3vzS8GJnAWavUFVkR15
0wIDAQAB
-----END PUBLIC KEY-----`,
      },
    },

    redeem: {
      proofMode: 'full',
    },
  }
}
