/**
 * 模块相关类型定义
 *
 * @module types/module
 * @author czj
 * @date 2026-07-09
 */

/** 测试模块接口 */
export interface Module {
  /** 模块唯一标识 */
  id: string
  /** 模块名称 */
  name: string
  /** 模块描述 */
  description: string
  /** 模块图标标识 */
  icon: string
  /** 排序序号 */
  order: number
  /** 模块类型 standard/custom */
  moduleType?: string
  /** 父模块ID（支持层级结构） */
  parentId?: string | null
  /** 子模块列表（树形结构） */
  children?: Module[]
  /** 用例数量（扩展字段） */
  caseCount?: number
  /** 通过率（扩展字段） */
  passRate?: number
  /** 创建时间 */
  createdAt: string
  /** 更新时间 */
  updatedAt: string
}

/** 创建模块请求参数 */
export interface CreateModuleRequest {
  /** 模块名称 */
  name: string
  /** 模块描述 */
  description?: string
  /** 模块图标 */
  icon?: string
  /** 模块类型 standard/custom */
  module_type?: string
  /** 父模块ID */
  parent_id?: string | null
}

/** 更新模块请求参数 */
export interface UpdateModuleRequest {
  name?: string
  description?: string
  icon?: string
  order?: number
  module_type?: string
  /** 父模块ID（空字符串表示清除父模块） */
  parent_id?: string | null
}

/** 模块列表响应 */
export interface ModuleListResponse {
  total: number
  items: Module[]
}

/** 模块统计信息 */
export interface ModuleStats {
  moduleId: string
  moduleName: string
  totalCases: number
  activeCases: number
}