"use strict";
/**
 * 创建并返回所有内建字段驱动实例。
 *
 * 由 FieldSystemManager 在首次 getFieldSystem() 时调用，
 * 返回的 driver 数组会被批量注册到 FieldRegistry。
 *
 * 当前内建字段清单：
 * - AI 子类型（8 种） ：共用 AiFieldDriver，category = 'ai'
 * - Agent 子类型（4 种）：共用 AiFieldDriver，category = 'agent'
 * - 公式字段（1 种）    ：FormulaFieldDriver，category = 'regular'
 * - 普通字段（1 种）    ：NormalFieldDriver，category = 'regular'
 *
 * 如需新增字段类型，在此处追加即可；外部插件则通过 registerFieldDriver(s) 运行时注入。
 */
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createDefaultDrivers = createDefaultDrivers;
const i18n_1 = __importDefault(require("../../../../locales/i18n.js"));
const ai_field_driver_1 = require("./ai-field-driver");
const formula_field_driver_1 = require("./formula-field-driver");
const lookup_field_driver_1 = require("./lookup-field-driver");
/** AI 字段子类型清单，order 越小在选择器中越靠前 */
const AI_SUB_TYPES = [
    { type: 'ai-generate', label: () => i18n_1.default.get({ id: 'GenerateText', dm: '生成文本' }), order: 1 },
    {
        type: 'format-convert',
        label: () => i18n_1.default.get({ id: 'FormatConversion', dm: '格式转化' }),
        order: 2,
    },
    {
        type: 'customer-call-follow',
        label: () => i18n_1.default.get({ id: 'CustomerPhoneFollowup', dm: '客户电话跟进' }),
        order: 3,
    },
    {
        type: 'analyze-records',
        label: () => i18n_1.default.get({ id: 'AnalysisRecords', dm: '分析记录' }),
        order: 4,
    },
    {
        type: 'smart-summary',
        label: () => i18n_1.default.get({ id: 'SmartSummary', dm: '智能总结' }),
        order: 5,
    },
    {
        type: 'target-responsible',
        label: () => i18n_1.default.get({ id: 'TargetLeader', dm: '目标负责人' }),
        order: 6,
    },
    {
        type: 'logistics-order-recognition',
        label: () => i18n_1.default.get({ id: 'LogisticListIdentification', dm: '物流单识别' }),
        order: 7,
    },
    {
        type: 'create-ai-field',
        label: () => i18n_1.default.get({ id: 'CreateAnAIField', dm: '创建AI字段' }),
        order: 8,
    },
];
/** Agent 字段子类型清单，order 从 20 开始，与 AI 子类型区分 */
// const AGENT_SUB_TYPES: Array<{ type: string; label: () => string; order: number }> = [
//   {
//     type: 'logistics-product-manager',
//     label: () => $i18n.get({ id: 'LogisticsProductManager', dm: '物流产品经理' }),
//     order: 20,
//   },
//   {
//     type: 'sales-assistant',
//     label: () => $i18n.get({ id: 'SalesAssistant', dm: '销售助手' }),
//     order: 21,
//   },
//   {
//     type: 'smart-summary-agent',
//     label: () => $i18n.get({ id: 'SmartSummary', dm: '智能总结' }),
//     order: 22,
//   },
//   {
//     type: 'create-ai-field-agent',
//     label: () => $i18n.get({ id: 'CreateAnAIField', dm: '创建AI字段' }),
//     order: 23,
//   },
// ];
/** 工厂函数：创建所有内建 driver 实例，由 FieldSystemManager 调用 */
function createDefaultDrivers() {
    const drivers = [];
    for (const sub of AI_SUB_TYPES) {
        drivers.push(new ai_field_driver_1.AiFieldDriver({
            type: sub.type,
            label: sub.label(),
            category: 'ai',
            icon: 'magic',
            iconType: 'ai',
            iconColor: '#722ed1',
            order: sub.order,
        }));
    }
    // for (const sub of AGENT_SUB_TYPES) {
    //   drivers.push(
    //     new AiFieldDriver({
    //       type: sub.type,
    //       label: sub.label(),
    //       category: 'agent',
    //       icon: 'magic',
    //       iconType: 'agent',
    //       iconColor: '#1890ff',
    //       order: sub.order,
    //     }),
    //   );
    // }
    drivers.push(new formula_field_driver_1.FormulaFieldDriver());
    drivers.push(new lookup_field_driver_1.LookupFieldDriver());
    return drivers;
}
