export interface AccessLog {
  id: number;
  ip: string;
  method: string;
  path: string;
  status_code: number;
  latency_ms: number;
  country: string;
  city: string;
  latitude: number | null;
  longitude: number | null;
  created_at: string;
}

export interface Stats {
  uptime_seconds: number;
  total_hits: number;
  active_ips: number;
  avg_latency_ms: number;
}

export interface GeoDistributionItem {
  country: string;
  count: number;
  percentage: number;
}

export interface GeoPoint {
  latitude: number;
  longitude: number;
  country: string;
  city: string;
  hit_count: number;
}

export interface ScrapeJob {
  job_id: string;
  status: 'pending' | 'running' | 'done' | 'failed';
  error?: string;
  created_at: string;
}

export interface ScrapeResult {
  url: string;
  model_name: string;
  prices: Record<string, unknown>;
  scraped_at: string;
}

export interface ScrapeJobDetail extends ScrapeJob {
  results?: ScrapeResult[];
}
