import type { VbenFormProps } from '#/adapter/form';

/**
 * 群聊新增/编辑弹窗表单配置
 *
 * 关键字段：
 * - platform_code：所属平台（RadioGroup 单选，选项由弹窗组件 onOpenChange 时动态注入）
 * - name：群聊名称（用户可读，便于识别）
 * - external_id：平台原生群聊 ID（选填，预留后期接入获取群成员接口时使用）
 * - sort：排序值（数字越大越靠前）
 * - status：启用/禁用
 */
export const modalFormProps: VbenFormProps = {
  wrapperClass: 'grid-cols-12',
  commonConfig: {
    formItemClass: 'col-span-12',
    componentProps: {
      class: 'w-full',
    },
  },
  layout: 'horizontal',
  schema: [
    {
      component: 'VbenInput',
      fieldName: 'id',
      label: 'ID',
      formItemClass: 'col-span-6',
      dependencies: {
        show: false,
        triggerFields: ['id'],
      },
    },
    {
      // 平台数量有限（企业微信/钉钉/飞书），用单选按钮比下拉更直观
      component: 'RadioGroup',
      componentProps: {
        // 选项由弹窗组件 onOpenChange 时通过 formApi.updateSchema 动态注入
        options: [],
      },
      fieldName: 'platform_code',
      label: '所属平台',
      rules: 'selectRequired',
    },
    {
      component: 'VbenInput',
      componentProps: {
        placeholder: '请输入群聊名称（便于识别，如：财务群-企业微信）',
      },
      fieldName: 'name',
      label: '群聊名称',
      rules: 'required',
    },
    {
      // 1=应用群聊(实时 appchat) 2=客户群(群发需确认)
      component: 'RadioGroup',
      componentProps: {
        options: [
          { label: '客户群', value: 2 },
          { label: '应用群聊', value: 1 },
        ],
      },
      defaultValue: 2,
      fieldName: 'chat_kind',
      label: '群类型',
      rules: 'selectRequired',
      help: '客户群走群发任务（需员工确认）；应用群聊实时推送',
    },
    {
      component: 'VbenInput',
      componentProps: {
        placeholder: '企微 chat_id / 客户群 chat_id，同步后会自动回填',
      },
      fieldName: 'external_id',
      label: '平台原生群聊 ID',
    },
    {
      component: 'VbenInput',
      componentProps: {
        placeholder: '客户群群主 userid，群发时可作 sender 兜底',
      },
      fieldName: 'owner_userid',
      label: '群主 userid',
    },
    {
      component: 'InputNumber',
      componentProps: {
        placeholder: '数字越大越靠前',
        min: 0,
      },
      defaultValue: 0,
      fieldName: 'sort',
      label: '排序',
    },
    {
      component: 'RadioGroup',
      componentProps: {
        options: [
          { label: '启用', value: 1 },
          { label: '禁用', value: 0 },
        ],
      },
      defaultValue: 1,
      fieldName: 'status',
      label: '状态',
    },
  ],
  showDefaultActions: false,
};
