// {
//   "app": {
//   "layout": "sidebar-nav"
// }
// }{
//   "tabbar": {
//     "enable": false
//   }
// }
import {
  appCopyrightPreferences,
  defineOverridesPreferences,
  definePreferencesExtension,
} from '@vben/preferences';

interface WebAntdPreferencesExtension {
  defaultTableSize: number;
  enableFormFullscreen: boolean;
  reportTitle: string;
  tenantMode: 'multi' | 'single';
}

/**
 * @description 项目配置文件
 * 只需要覆盖项目中的一部分配置，不需要的配置不用覆盖，会自动使用默认配置
 * !!! 更改配置后请清空缓存，否则可能不生效
 */
export const overridesPreferences = defineOverridesPreferences({
  // overrides
  app: {
    name: import.meta.env.VITE_APP_TITLE,
    layout: 'sidebar-mixed-nav',
    // layout: 'sidebar-nav',
    // 登录过期模式
    // loginExpiredMode: 'modal',
    loginExpiredMode: 'page',
    // 权限模式 frontend 默认前端控制 backend 后端控制
    accessMode: 'backend',
    enableRefreshToken: false,
    defaultAvatar:
      'https://yanydy.oss-cn-hangzhou.aliyuncs.com/uploads/20241219/2b38e38414a2b9383b8643983e3f69d7.png',
    watermark: false,
    // watermark: true,
    // 是否开启检查更新
    enableCheckUpdates: true,
    // 检查更新的时间间隔，单位为分钟
    checkUpdatesInterval: 1,
    version: '1.0.0',
    /**
     * 文件上传方式配置
     *
     * 可选值：
     * - 'direct': OSS直传模式，文件直接从浏览器上传到阿里云OSS（推荐，性能更好）
     * - 'backend': 后端上传模式，文件先上传到后端服务器，再由后端上传到OSS（兼容模式）
     *
     * 默认值：'direct'（OSS直传）
     *
     * 说明：
     * - OSS直传模式：减少服务器负载，上传速度更快，但需要后端提供签名接口
     * - 后端上传模式：兼容现有功能，所有上传逻辑由后端处理
     *
     * 切换方式：
     * - 可以通过修改此配置值来切换上传方式
     * - 配置会持久化到本地存储，刷新页面后仍然有效
     */
    uploadMethod: 'direct' as 'direct' | 'backend',
  },
  sidebar: {
    extraCollapse: false,
  },
  footer: {
    // enable: true,
    // fixed: true,
  },
  logo: {
    enable: true,
    source:
      // 'https://yanydy.oss-cn-hangzhou.aliyuncs.com/uploads/20241219/2b38e38414a2b9383b8643983e3f69d7.png',
      '/img/logo.png',
  },
  theme: {
    mode: 'auto',
    builtinType: 'sky-blue',
    colorPrimary: 'hsl(231 98% 65%)',
  },
  copyright: {
    companyName: '萧康云医',
    companySiteLink: 'https://admin.xiaokang88.com',
    icp: '浙ICP备19041368号-2',
    icpLink: 'https://beian.miit.gov.cn/#/Integrated/recordQuery',
  },
  tabbar: {
    enable: true,
  },
  copyright: appCopyrightPreferences,
});

export const preferencesExtension =
  definePreferencesExtension<WebAntdPreferencesExtension>({
    tabLabel: 'preferences.antd.tabLabel',
    title: 'preferences.antd.title',
    fields: [
      {
        component: 'switch',
        defaultValue: true,
        key: 'enableFormFullscreen',
        label: 'preferences.antd.fields.enableFormFullscreen.label',
        tip: 'preferences.antd.fields.enableFormFullscreen.tip',
      },
      {
        component: 'select',
        defaultValue: 'single',
        key: 'tenantMode',
        label: 'preferences.antd.fields.tenantMode.label',
        options: [
          {
            label: 'preferences.antd.fields.tenantMode.options.single.label',
            value: 'single',
          },
          {
            label: 'preferences.antd.fields.tenantMode.options.multi.label',
            value: 'multi',
          },
        ],
      },
      {
        component: 'number',
        componentProps: {
          max: 200,
          min: 10,
          step: 10,
        },
        defaultValue: 20,
        key: 'defaultTableSize',
        label: 'preferences.antd.fields.defaultTableSize.label',
      },
      {
        component: 'input',
        defaultValue: '',
        key: 'reportTitle',
        label: 'preferences.antd.fields.reportTitle.label',
        placeholder: 'preferences.antd.fields.reportTitle.placeholder',
      },
    ],
  });
