package com.zioinfo.kintex.congestion.dto;

import java.util.List;

/**
 * 공개/관람객 혼잡 안내(F-C3) DTO. M14 현장운영(체크인 파생 혼잡) 실집계를 관람객 관점으로 재구성.
 * <p>혼잡 3단계: level ∈ FREE|NORMAL|BUSY (여유/보통/혼잡). 관람객 웹/앱 표시 전용.
 */
public final class CongestionDtos {

    private CongestionDtos() {
    }

    /**
     * 관람객 혼잡 요약 — 전체 + 입장 게이트/주차/인기 공간(세션) 3영역.
     * <p>onSiteCount = 현장 체크인 인원(M10 파생). updatedAt = 산출 시각.
     */
    public record CongestionOverviewDto(
            String eventId,
            String overallLevel,
            String overallLabel,
            long onSiteCount,
            List<CongestionAreaDto> entryGates,
            List<CongestionAreaDto> parking,
            List<CongestionAreaDto> popularSessions,
            String updatedAt) {
    }

    /**
     * 혼잡 영역 단위 — 게이트(홀 입장)·주차장·인기 공간 공통.
     * occupancyPercent 는 점유율 산출 가능한 영역(주차)만 채우고, 게이트/공간은 null(계측 부재).
     */
    public record CongestionAreaDto(
            String id,
            String label,
            String level,
            String levelLabel,
            Integer occupancyPercent) {
    }
}
