/**
 * ETL 状态监控 API 调用。
 *
 * - fetchCursors：获取各任务的数据游标（最后抓取时间、记录数）
 * - fetchRecentRuns：获取最近执行记录
 */

import { apiClient } from './client';

/** ETL 游标信息 */
export interface CursorInfo {
  task_code: string;
  last_start: string | null;
  last_end: string | null;
}

/** 最近执行记录 */
export interface RecentRun {
  id: string;
  task_codes: string[];
  status: string;
  started_at: string;
  finished_at: string | null;
  duration_ms: number | null;
  exit_code: number | null;
}

/** 获取各任务的数据游标 */
export async function fetchCursors(): Promise<CursorInfo[]> {
  const { data } = await apiClient.get<CursorInfo[]>('/etl-status/cursors');
  return data;
}

/** 获取最近执行记录 */
export async function fetchRecentRuns(): Promise<RecentRun[]> {
  const { data } = await apiClient.get<RecentRun[]>('/etl-status/recent-runs');
  return data;
}
