/**
 * 手动触发相关类型定义
 */

/**
 * 任务类型
 */
export type TaskType = 'polling:realname' | 'polling:carddata' | 'polling:package'

/**
 * 触发类型
 */
export type TriggerType = 'single' | 'batch' | 'by_condition'

/**
 * 任务状态
 */
export type ManualTriggerStatus = 'pending' | 'processing' | 'completed' | 'cancelled'

/**
 * 手动触发日志对象
 */
export interface ManualTriggerLog {
  /** 日志ID */
  id: number
  /** 任务类型 */
  task_type: TaskType
  /** 任务类型名称 */
  task_type_name: string
  /** 触发类型 */
  trigger_type: TriggerType
  /** 触发类型名称 */
  trigger_type_name: string
  /** 总卡数 */
  total_count: number
  /** 已处理数 */
  processed_count: number
  /** 成功数 */
  success_count: number
  /** 失败数 */
  failed_count: number
  /** 状态 */
  status: ManualTriggerStatus
  /** 状态名称 */
  status_name: string
  /** 触发时间 */
  triggered_at: string
  /** 完成时间 */
  completed_at: string | null
  /** 触发人ID */
  triggered_by: number
}

/**
 * 批量手动触发请求参数
 */
export interface BatchManualTriggerRequest {
  /** 任务类型 */
  task_type: TaskType
  /** 卡ID列表（最多1000个） */
  card_ids?: number[]
}

/**
 * 条件筛选触发请求参数
 */
export interface ConditionManualTriggerRequest {
  /** 任务类型 */
  task_type: TaskType
  /** 限制数量（最多1000） */
  limit: number
  /** 卡状态筛选 */
  card_status?: string
  /** 卡类型筛选 */
  card_type?: string
  /** 运营商代码筛选 */
  carrier_code?: string
  /** 是否启用轮询筛选 */
  enable_polling?: boolean
  /** 套餐ID列表筛选 */
  package_ids?: number[]
  /** 店铺ID筛选 */
  shop_id?: number
}

/**
 * 单卡手动触发请求参数
 */
export interface SingleManualTriggerRequest {
  /** 卡ID */
  card_id: number
  /** 任务类型 */
  task_type: TaskType
}

/**
 * 取消手动触发请求参数
 */
export interface CancelManualTriggerRequest {
  /** 触发任务ID */
  trigger_id: number
}

/**
 * 手动触发历史查询参数
 */
export interface ManualTriggerHistoryQueryParams {
  /** 任务类型筛选 */
  task_type?: TaskType
  /** 页码 */
  page?: number
  /** 每页数量 */
  page_size?: number
}

/**
 * 手动触发历史列表响应
 */
export interface ManualTriggerHistoryResponse {
  /** 日志列表 */
  items: ManualTriggerLog[]
  /** 当前页 */
  page: number
  /** 每页数量 */
  page_size: number
  /** 总数 */
  total: number
  /** 总页数 */
  total_pages: number
}

/**
 * 手动触发状态响应
 */
export interface ManualTriggerStatusResponse {
  /** 各队列大小 */
  queue_sizes: Record<string, number>
  /** 正在运行的任务列表 */
  running_tasks: ManualTriggerLog[]
}
