/**
 * 选项配置类型
 * @property {string} title - 标题（通常为空）
 * @property {string[]} instructions - 指导语（通常为空数组）
 * @property {number} price - 价格（通常为 0）
 * @property {string} gradient - 渐变（通常为空字符串）
 * @property {string[]} image_url - 图片 URL 列表（通常为空数组）
 * @property {number} option_type - 选项类型（通常为 0）
 * @property {number} type - 类型（通常为 0）
 * @property {string} limit_right_content - 右侧极限文字内容
 * @property {null | any} child_area - 子区域（通常为 null）
 * @property {string} binding_goods_id - 绑定商品 ID（通常为空字符串）
 */
type OptionConfig = {
  title?: string;
  instructions?: string[];
  price?: number;
  gradient?: string;
  image_url?: string[];
  option_type?: number;
  type?: number;
  limit_right_content?: string;
  child_area?: null | any;
  binding_goods_id?: string;
};

/**
 * 单个选项类型
 * @property {boolean} editor - 是否处于编辑状态
 * @property {string} option - 选项内容（HTML 格式）
 * @property {string} id - 选项 ID
 * @property {number} type - 选项类型（1 表示行选项，2 表示列选项等）
 * @property {number} is_other - 是否为其他选项（0 表示否，1 表示是）
 * @property {number} is_fixed - 是否固定（0 表示否，1 表示是）
 * @property {number} is_remove_other - 是否移除其他选项（0 表示否，1 表示是）
 * @property {string | null} created_at - 创建时间（可能为 null）
 * @property {string | null} created_user_id - 创建用户 ID（可能为 null）
 * @property {string | null} parent_id - 父级 ID（通常为 null）
 * @property {number} option_index - 选项索引
 * @property {number} list_id - 列表 ID
 * @property {string} option_code - 选项代码（通常为空字符串）
 * @property {OptionConfig} option_config - 选项配置
 * @property {string | null} disable_option_update - 禁用选项更新（通常为 null）
 * @property {any[]} cascade - 级联关系（通常为空数组）
 */
type Option = {
  editor: boolean;
  option?: string;
  id?: string;
  type?: number;
  is_other?: number;
  is_fixed?: number;
  is_remove_other?: number;
  created_at?: string | null;
  created_user_id?: string | null;
  parent_id?: string | null;
  option_index?: number;
  list_id?: number;
  option_code?: string;
  option_config?: OptionConfig;
  disable_option_update?: string | null;
  cascade?: any[];
};

/**
 * 逻辑配置类型
 * @property {string} expect - 期望值（通常为空字符串）
 * @property {number} order - 排序（通常为 0）
 * @property {number} type - 类型（通常为 0）
 * @property {string} stay_time - 停留时间（通常为空字符串）
 */
type LogicConfig = {
  expect?: string;
  order?: number;
  type?: number;
  stay_time?: string;
};

/**
 * 矩阵调查问题类型
 * @property {string} id - 问题 ID
 * @property {string} title - 问题标题（如 Q1）
 * @property {string} stem - 问题描述
 * @property {string} other - 其他信息（通常为空字符串）
 * @property {number} question_index - 问题索引
 * @property {number} question_type - 问题类型（如矩阵类型）
 * @property {Config} config - 配置信息
 * @property {string} created_at - 创建时间
 * @property {number} created_user_id - 创建用户 ID
 * @property {number | null} updated_user_id - 更新用户 ID（可能为 null）
 * @property {number} survey_id - 所属问卷 ID
 * @property {LogicConfig} logic_config - 逻辑配置
 * @property {[Option[], Option[]]} options - 选项列表，第一个子数组是行标签，第二个子数组是列标签
 * @property {any[]} associate - 关联信息（通常为空数组）
 * @property {string | null} logics_has - 是否有逻辑关联（通常为 null）
 * @property {number} last_option_index - 最后一个选项索引
 * @property {string} question_code - 问题代码（通常为空字符串）
 * @property {string} question_value - 问题值（通常为空字符串）
 * @property {string} question_tag - 问题标签（通常为空字符串）
 * @property {string} planet_id - 行星 ID（通常为空字符串）
 * @property {any | null} permissions - 权限信息（通常为 null）
 */
type MatrixSurveyQuestion = question;
/**
 * 矩阵调查类型
 * @property {MatrixSurveyQuestion} question - 矩阵调查问题
 */
type MatrixSurvey = {
  question?: MatrixSurveyQuestion;
};
