package com.zioinfo.kintex.module.m2.dto;

import java.util.List;

/**
 * 평면도 선택 트리 — 대분류(전시장) > 중분류(홀) > 소분류(구역, V60 hall_zone).
 * 소유자 지시 2026-07-14: "데이터는 트리구조". 배치 에디터가 이 트리로 전시장→홀→구역을 선택하고
 * 선택 구역(zoneId)은 자동배치 패킹 경계로 쓰인다.
 *
 * @param centers 전시장(대분류) 목록
 */
public record HallTreeDto(List<Center> centers) {

    /** 대분류 — 전시장(제1/제2). */
    public record Center(int center, String label, List<HallNode> halls) {
    }

    /** 중분류 — 홀. dimsM=[폭, 깊이](m, V59 도면 방향 정렬). */
    public record HallNode(String id, String label, List<Double> dimsM, List<ZoneNode> zones) {
    }

    /** 소분류 — 홀 내부 구역(예: 1A/1B). */
    public record ZoneNode(String id, String label) {
    }
}
