/**
 * 表格列显示配置
 * 用于控制代码生成器生成的表格默认显示哪些列
 */

// 优先显示的字段名（按优先级排序）
const PRIORITY_FIELDS = [
  'id',           // 主键ID
  'name',         // 名称
  'title',        // 标题  
  'code',         // 编码
  'status',       // 状态
  'sort',         // 排序
  'createTime',   // 创建时间
  'updateTime'    // 更新时间
];

// 字段类型优先级配置
const FIELD_TYPE_PRIORITY = {
  'keyFlag': 10,      // 主键字段最高优先级
  'String': 8,        // 字符串字段
  'Integer': 6,       // 整数字段
  'Boolean': 5,       // 布尔字段
  'Date': 4,          // 日期字段
  'BigDecimal': 3,    // 数值字段
  'Text': 1           // 文本字段最低优先级
};

// 排除的字段（不显示在表格中）
const EXCLUDED_FIELDS = [
  'tenantId',     // 租户ID
  'deleted',      // 逻辑删除标记
  'version',      // 版本号
  'remark',       // 备注（通常内容较长）
  'description',  // 描述（通常内容较长）
  'content'       // 内容（通常内容较长）
];

// 默认显示的最大列数
const MAX_DEFAULT_COLUMNS = 6;

// 特殊字段的宽度配置
const FIELD_WIDTH_CONFIG = {
  'id': 90,
  'status': 80,
  'sort': 80,
  'createTime': 120,
  'updateTime': 120,
  'default_string': 150,
  'default_number': 120,
  'default_other': 120
};

module.exports = {
  PRIORITY_FIELDS,
  FIELD_TYPE_PRIORITY,
  EXCLUDED_FIELDS,
  MAX_DEFAULT_COLUMNS,
  FIELD_WIDTH_CONFIG
};
