/*
 * SCR-14 현장운영 — 로컬 API 클라이언트(실데이터 확장 계약).
 * 공용 api/types.ts 의 OpsData(halls/hvac/lighting/parking)는 고정이라 확장 필드
 * (powerKw·onSiteCount·powerTotalKw·checkinSeries)를 여기서 확장 타입으로 받는다.
 * 동일 엔드포인트 GET /api/events/{eventId}/ops — 백엔드 OpsDto(확장)와 정합.
 */
import { api } from '../../api/client';

export interface OpsHallExt {
  hallId: string;
  label: string;
  estPeople: number;
  heat: 'smooth' | 'moderate' | 'busy' | string;
  /** M4 유틸리티 신청 부하 합(kW). 신청 없으면 null. */
  powerKw: number | null;
}

export interface OpsCheckinPoint {
  hour: string; // 'HH:00'
  count: number;
}

export interface OpsDataExt {
  halls: OpsHallExt[];
  hvac: { tempC: number | null; humidityPercent: number | null; co2Ppm: number | null };
  lighting: { zone: string; onPercent: number }[];
  parking: { zone: string; occupancy: number; capacity: number }[];
  /** 체크인 완료 현장 인원(M10 파생). */
  onSiteCount: number;
  /** 신청 전력 총합(kW). 신청 없으면 null. */
  powerTotalKw: number | null;
  /** 시간대별 체크인 추이. */
  checkinSeries: OpsCheckinPoint[];
}

export const opsApiLocal = {
  get: (eventId: string) =>
    api.get<OpsDataExt>(`/api/events/${encodeURIComponent(eventId)}/ops`),
};
