import path from 'node:path'
import process from 'node:process'
// manifest.config.ts
import { defineManifestConfig } from '@uni-helper/vite-plugin-uni-manifest'
import { loadEnv } from 'vite'

// 手动解析命令行参数获取 mode
function getMode() {
  const args = process.argv.slice(2)
  const modeFlagIndex = args.findIndex(arg => arg === '--mode')
  return modeFlagIndex !== -1 ? args[modeFlagIndex + 1] : args[0] === 'build' ? 'production' : 'development' // 默认 development
}
// 获取环境变量的范例
const env = loadEnv(getMode(), path.resolve(process.cwd(), 'env'))
const {
  VITE_APP_TITLE,
  VITE_UNI_APPID,
  VITE_WX_APPID,
  VITE_APP_PUBLIC_BASE,
  VITE_FALLBACK_LOCALE, // 默认系统语言
  VITE_MTPUSH_APPKEY_ANDROID,
  VITE_APP_VERSION,
  VITE_APP_VERSION_CODE,
} = env

export default defineManifestConfig({
  'name': VITE_APP_TITLE,
  'appid': VITE_UNI_APPID,
  'description': '',
  'versionName': VITE_APP_VERSION || '1.0.0',
  'versionCode': VITE_APP_VERSION_CODE || '100',
  'transformPx': false,
  'locale': VITE_FALLBACK_LOCALE === 'en' ? 'en' : 'bn', // 此app需默认孟加拉语
  'fallbackLocale': 'bn',
  'h5': {
    router: {
      base: VITE_APP_PUBLIC_BASE,
    },
    uniStatistics: {
      enable: true,
    },
  },
  /* 5+App特有相关 */
  'app-plus': {
    // safearea: {
    //   bottom: {
    //     offset: 'none',
    //   },
    // },
    screenOrientation: ['portrait-primary', 'portrait-secondary', 'landscape-primary', 'landscape-secondary'],
    usingComponents: true,
    nvueStyleCompiler: 'uni-app',
    compilerVersion: 3,
    compatible: {
      ignoreVersion: true,
    },
    splashscreen: {
      alwaysShowBeforeRender: true,
      waiting: true,
      autoclose: true,
      delay: 0,
    },
    /* 模块配置 */
    modules: {
      Share: {},
      Camera: {},
      Push: {},
    },
    /* 应用发布信息 */
    distribute: {
      /* android打包配置 */
      android: {
        minSdkVersion: 30,
        targetSdkVersion: 35,
        abiFilters: ['armeabi-v7a', 'arm64-v8a', 'x86'],
        permissions: [
          '<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>',
          '<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>',
          '<uses-permission android:name="android.permission.VIBRATE"/>',
          '<uses-permission android:name="android.permission.READ_LOGS"/>',
          '<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>',
          '<uses-feature android:name="android.hardware.camera.autofocus"/>',
          '<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>',
          '<uses-permission android:name="android.permission.CAMERA"/>',
          '<uses-permission android:name="android.permission.GET_ACCOUNTS"/>',
          '<uses-permission android:name="android.permission.READ_PHONE_STATE"/>',
          '<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>',
          '<uses-permission android:name="android.permission.WAKE_LOCK"/>',
          '<uses-permission android:name="android.permission.FLASHLIGHT"/>',
          '<uses-feature android:name="android.hardware.camera"/>',
          '<uses-permission android:name="android.permission.WRITE_SETTINGS"/>',
        ],
      },
      /* ios打包配置 */
      ios: {
        idfa: false,
      },
      /* SDK配置 */
      sdkConfigs: {},
      /* 图标配置 */
      icons: {
        android: {
          hdpi: 'src/static/app/icons/72x72.png',
          xhdpi: 'src/static/app/icons/96x96.png',
          xxhdpi: 'src/static/app/icons/144x144.png',
          xxxhdpi: 'src/static/app/icons/192x192.png',
        },
        ios: {
          appstore: 'src/static/app/icons/1024x1024.png',
          ipad: {
            'app': 'src/static/app/icons/76x76.png',
            'app@2x': 'src/static/app/icons/152x152.png',
            'notification': 'src/static/app/icons/20x20.png',
            'notification@2x': 'src/static/app/icons/40x40.png',
            'proapp@2x': 'src/static/app/icons/167x167.png',
            'settings': 'src/static/app/icons/29x29.png',
            'settings@2x': 'src/static/app/icons/58x58.png',
            'spotlight': 'src/static/app/icons/40x40.png',
            'spotlight@2x': 'src/static/app/icons/80x80.png',
          },
          iphone: {
            'app@2x': 'src/static/app/icons/120x120.png',
            'app@3x': 'src/static/app/icons/180x180.png',
            'notification@2x': 'src/static/app/icons/40x40.png',
            'notification@3x': 'src/static/app/icons/60x60.png',
            'settings@2x': 'src/static/app/icons/58x58.png',
            'settings@3x': 'src/static/app/icons/87x87.png',
            'spotlight@2x': 'src/static/app/icons/80x80.png',
            'spotlight@3x': 'src/static/app/icons/120x120.png',
          },
        },
      },
      splashscreen: {
        androidStyle: 'common',
        android: {
          hdpi: 'src/static/app/start/start-480.png',
          xhdpi: 'src/static/app/start/start-720.png',
          xxhdpi: 'src/static/app/start/start-1080.png',
        },
      },
    },
    uniStatistics: {
      enable: true,
    },
    plugins: {
      'EL-MTPush': {
        version: '1.1.6',
        provider: '10093',
      },
    },
    nativePlugins: {
      'EL-MTPush': {
        MTPUSH_APPKEY_IOS: '',
        MTPUSH_CHANNEL_IOS: '',
        MTPUSH_ISPRODUCTION_IOS: '',
        MTPUSH_ADVERTISINGID_IOS: '',
        MTPUSH_DEFAULTINIT_IOS: '',
        MTPUSH_APPKEY_ANDROID: VITE_MTPUSH_APPKEY_ANDROID,
        MTPUSH_CHANNEL_ANDROID: '',
        MTPUSH_PROCESS_ANDROID: '',
        MTPUSH_XIAOMI_APPKEY: '',
        MTPUSH_XIAOMI_APPID: '',
        MTPUSH_MEIZU_APPKEY: '',
        MTPUSH_MEIZU_APPID: '',
        MTPUSH_OPPO_APPKEY: '',
        MTPUSH_OPPO_APPID: '',
        MTPUSH_OPPO_APPSECRET: '',
        MTPUSH_VIVO_APPKEY: '',
        MTPUSH_VIVO_APPID: '',
        MTPUSH_HONOR_APPID: '',
        MTPUSH_HUAWEI_APPID: '',
        MTPUSH_GOOGLE_API_KEY: '',
        MTPUSH_GOOGLE_APP_ID: '',
        MTPUSH_GOOGLE_PROJECT_NUMBER: '',
        MTPUSH_GOOGLE_PROJECT_ID: '',
        MTPUSH_GOOGLE_STORAGE_BUCKET: '',
        __plugin_info__: {
          name: 'EL-MTPush',
          description: 'EngageLab Hbuilder plugin',
          platforms: 'Android,iOS',
          url: '',
          android_package_name: '',
          ios_bundle_id: '',
          isCloud: false,
          bought: -1,
          pid: '',
          parameters: {
            MTPUSH_APPKEY_IOS: {
              des: '[iOS]EngageLab portal配置应用信息时分配的AppKey',
              key: 'MTPush:APP_KEY',
              value: '',
            },
            MTPUSH_CHANNEL_IOS: {
              des: '[iOS]用于统计分发渠道，不需要可填默认值developer-default',
              key: 'MTPush:CHANNEL',
              value: '',
            },
            MTPUSH_ISPRODUCTION_IOS: {
              des: '[iOS]是否是生产环境，是填true，不是填false或者不填',
              key: 'MTPush:ISPRODUCTION',
              value: '',
            },
            MTPUSH_ADVERTISINGID_IOS: {
              des: '[iOS]广告标识符（IDFA）如果不需要使用IDFA，可不填',
              key: 'MTPush:ADVERTISINGID',
              value: '',
            },
            MTPUSH_DEFAULTINIT_IOS: {
              des: '[iOS]是否默认初始化，是填true，不是填false或者不填',
              key: 'MTPush:DEFAULTINIT',
              value: '',
            },
            MTPUSH_APPKEY_ANDROID: {
              des: '[Android]EngageLab portal配置应用信息时分配的AppKey',
              key: '',
              value: '',
            },
            MTPUSH_CHANNEL_ANDROID: {
              des: '[Android]用于统计分发渠道，不需要可填默认值developer-default',
              key: '',
              value: '',
            },
            MTPUSH_PROCESS_ANDROID: {
              des: '[Android] Engagelab process，Engagelabsdk工作所在的进程，请填写 \':remote\', 注意:开头',
              key: '',
              value: '',
            },
            MTPUSH_XIAOMI_APPKEY: {
              des: '厂商XIAOMI-appKey,示例：MI-12345678',
              key: '',
              value: '',
            },
            MTPUSH_XIAOMI_APPID: {
              des: '厂商XIAOMI-appId,示例：MI-12345678',
              key: '',
              value: '',
            },
            MTPUSH_MEIZU_APPKEY: {
              des: '厂商MEIZU-appKey,示例：MZ-12345678',
              key: '',
              value: '',
            },
            MTPUSH_MEIZU_APPID: {
              des: '厂商MEIZU-appId,示例：MZ-12345678',
              key: '',
              value: '',
            },
            MTPUSH_OPPO_APPKEY: {
              des: '厂商OPPO-appkey,示例：OP-12345678',
              key: '',
              value: '',
            },
            MTPUSH_OPPO_APPID: {
              des: '厂商OPPO-appId,示例：OP-12345678',
              key: '',
              value: '',
            },
            MTPUSH_OPPO_APPSECRET: {
              des: '厂商OPPO-appSecret,示例：OP-12345678',
              key: '',
              value: '',
            },
            MTPUSH_VIVO_APPKEY: {
              des: '厂商VIVO-appkey,示例：12345678',
              key: '',
              value: '',
            },
            MTPUSH_VIVO_APPID: {
              des: '厂商VIVO-appId,示例：12345678',
              key: '',
              value: '',
            },
            MTPUSH_HONOR_APPID: {
              des: '厂商HONOR-appId,示例：12345678',
              key: '',
              value: '',
            },
            MTPUSH_HUAWEI_APPID: {
              des: '厂商HUAWEI-appId,示例：appid=12346578',
              key: 'com.huawei.hms.client.appid',
              value: '',
            },
            MTPUSH_GOOGLE_API_KEY: {
              des: '厂商google api_key,示例:G-asxa1232',
              key: 'google_api_key',
              value: '',
            },
            MTPUSH_GOOGLE_APP_ID: {
              des: '厂商google mobilesdk_app_id,示例：G-12346578',
              key: 'google_app_id',
              value: '',
            },
            MTPUSH_GOOGLE_PROJECT_NUMBER: {
              des: '厂商google project_number,示例：G-12346578',
              key: 'gcm_defaultSenderId',
              value: '',
            },
            MTPUSH_GOOGLE_PROJECT_ID: {
              des: '厂商google project_id ,示例：G-12346578',
              key: 'project_id',
              value: '',
            },
            MTPUSH_GOOGLE_STORAGE_BUCKET: {
              des: '厂商google storage_bucket,示例：G-12346578',
              key: 'google_storage_bucket',
              value: '',
            },
          },
        },
      },
    },
  },
  /* 快应用特有相关 */
  'quickapp': {
    uniStatistics: {
      enable: false,
    },
  },
  /* 小程序特有相关 */
  'mp-weixin': {
    appid: VITE_WX_APPID,
    setting: {
      urlCheck: false,
      // 是否启用 ES6 转 ES5
      es6: true,
      minified: true,
    },
    optimization: {
      subPackages: true,
    },
    usingComponents: true,
    uniStatistics: {
      enable: false,
    },
    // __usePrivacyCheck__: true,
  },
  'mp-alipay': {
    usingComponents: true,
    styleIsolation: 'shared',
    uniStatistics: {
      enable: false,
    },
  },
  'mp-baidu': {
    usingComponents: true,
    uniStatistics: {
      enable: false,
    },
  },
  'mp-toutiao': {
    usingComponents: true,
    uniStatistics: {
      enable: false,
    },
  },
  'app-harmony': {
    uniStatistics: {
      enable: false,
    },
  },
  'mp-harmony': {
    uniStatistics: {
      enable: false,
    },
  },
  'mp-jd': {
    uniStatistics: {
      enable: false,
    },
  },
  'mp-kuaishou': {
    uniStatistics: {
      enable: false,
    },
  },
  'mp-lark': {
    uniStatistics: {
      enable: false,
    },
  },
  'mp-qq': {
    uniStatistics: {
      enable: false,
    },
  },
  'mp-xhs': {
    uniStatistics: {
      enable: false,
    },
  },
  'uniStatistics': {
    enable: false, // 全局开启
    version: '2', // 开启新版uni统计，值为字符串
  },
  'vueVersion': '3',
})
