/**
 * API 通用类型定义
 */

// 基础响应类型
export interface BaseResponse<T = any> {
  code: number
  msg: string
  data: T
  timestamp?: string
}

// 分页请求参数
export interface PaginationParams {
  page?: number
  page_size?: number
  current?: number
  size?: number
}

// 分页响应数据
export interface PaginationData<T> {
  items: T[] // 数据列表
  total: number // 总数
  size: number // 每页数量
  page: number // 当前页
}

// 分页响应
export interface PaginationResponse<T = any> extends BaseResponse {
  data: PaginationData<T>
}

// 列表响应
export interface ListResponse<T = any> extends BaseResponse {
  data: T[]
}

// 日期范围参数
export type DateRange = [string, string] | string[]

// 排序参数
export interface SortParams {
  field?: string
  order?: 'asc' | 'desc' | 'ascending' | 'descending'
}

// 批量操作参数
export interface BatchOperationParams<T = any> {
  ids: (string | number)[]
  data?: T
}

// 导入任务状态
export enum ImportTaskStatus {
  PENDING = 'pending',
  PROCESSING = 'processing',
  SUCCESS = 'success',
  FAILED = 'failed',
  PARTIAL_SUCCESS = 'partial_success'
}

// 导入任务信息
export interface ImportTask {
  id: string | number
  fileName: string
  status: ImportTaskStatus
  totalCount: number
  successCount: number
  failCount: number
  createdTime: string
  completedTime?: string
  errorMessage?: string
}
