/**
 * 轮询配置管理相关类型定义
 */

/**
 * 卡业务类型
 */
export type CardCategory = 'normal' | 'industry'

/**
 * 卡状态条件
 */
export type CardCondition = 'not_real_name' | 'real_name' | 'activated' | 'suspended'

/**
 * 轮询配置对象
 */
export interface PollingConfig {
  /** 配置ID */
  id: number
  /** 配置名称 */
  config_name: string
  /** 配置说明 */
  description: string
  /** 卡业务类型 */
  card_category: CardCategory
  /** 卡状态条件 */
  card_condition: CardCondition
  /** 运营商ID */
  carrier_id: number
  /** 优先级（数字越小优先级越高） */
  priority: number
  /** 状态（1:启用，0:禁用） */
  status: number
  /** 实名检查间隔（秒，NULL表示不检查） */
  realname_check_interval: number | null
  /** 套餐检查间隔（秒，NULL表示不检查） */
  package_check_interval: number | null
  /** 流量检查间隔（秒，NULL表示不检查） */
  carddata_check_interval: number | null
  /** 保护期一致性检查间隔（秒，NULL表示不检查） */
  protect_check_interval: number | null
  /** 卡开停机状态检查间隔（秒，NULL表示不检查） */
  card_status_check_interval: number | null
  /** 创建时间 */
  created_at: string
  /** 更新时间 */
  updated_at: string
}

/**
 * 轮询配置查询参数
 */
export interface PollingConfigQueryParams {
  /** 页码（默认1） */
  page?: number
  /** 每页数量（1-100） */
  page_size?: number
  /** 状态（1:启用，0:禁用） */
  status?: number
  /** 卡状态条件 */
  card_condition?: CardCondition
  /** 卡业务类型 */
  card_category?: CardCategory
  /** 运营商ID */
  carrier_id?: number
  /** 配置名称（模糊搜索） */
  config_name?: string
}

/**
 * 轮询配置列表响应
 */
export interface PollingConfigListResponse {
  /** 配置列表 */
  items: PollingConfig[]
  /** 当前页 */
  page: number
  /** 每页数量 */
  page_size: number
  /** 总数 */
  total: number
  /** 总页数 */
  total_pages: number
}

/**
 * 创建轮询配置请求参数
 */
export interface CreatePollingConfigRequest {
  /** 配置名称（1-100字符） */
  config_name: string
  /** 优先级（1-1000，数字越小优先级越高） */
  priority: number
  /** 配置说明（最多500字符） */
  description?: string
  /** 卡业务类型 */
  card_category?: CardCategory
  /** 卡状态条件 */
  card_condition?: CardCondition
  /** 运营商ID */
  carrier_id?: number
  /** 实名检查间隔（秒，最小30，NULL表示不检查） */
  realname_check_interval?: number | null
  /** 套餐检查间隔（秒，最小60，NULL表示不检查） */
  package_check_interval?: number | null
  /** 流量检查间隔（秒，最小60，NULL表示不检查） */
  carddata_check_interval?: number | null
  /** 保护期一致性检查间隔（秒，最小30，NULL表示不检查） */
  protect_check_interval?: number | null
  /** 卡开停机状态检查间隔（秒，最小30，NULL表示不检查） */
  card_status_check_interval?: number | null
}

/**
 * 更新轮询配置请求参数
 */
export interface UpdatePollingConfigRequest {
  /** 配置名称（1-100字符） */
  config_name?: string
  /** 优先级（1-1000，数字越小优先级越高） */
  priority?: number
  /** 配置说明（最多500字符） */
  description?: string
  /** 卡业务类型 */
  card_category?: CardCategory
  /** 卡状态条件 */
  card_condition?: CardCondition
  /** 运营商ID */
  carrier_id?: number
  /** 实名检查间隔（秒，最小30，NULL表示不检查） */
  realname_check_interval?: number | null
  /** 套餐检查间隔（秒，最小60，NULL表示不检查） */
  package_check_interval?: number | null
  /** 流量检查间隔（秒，最小60，NULL表示不检查） */
  carddata_check_interval?: number | null
  /** 保护期一致性检查间隔（秒，最小30，NULL表示不检查） */
  protect_check_interval?: number | null
  /** 卡开停机状态检查间隔（秒，最小30，NULL表示不检查） */
  card_status_check_interval?: number | null
}

/**
 * 更新轮询配置状态请求参数
 */
export interface UpdatePollingConfigStatusRequest {
  /** 状态（1:启用，0:禁用） */
  status: number
}
