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

import com.fasterxml.jackson.annotation.JsonInclude;

import java.util.List;

/**
 * 배선 산출 결과(SCR-07 캔버스 오버레이 + S6 래스터 합성 입력).
 * 경로 좌표는 PostGIS 최단 배선(ST_Distance/트렌치 라우팅) 산출값이며, 나노바나나 워커 S6 오버레이의 원천이다.
 *
 * @param assumedTrench 트렌치 좌표가 실측이 아닌 '가정 그리드'인지 여부(SCR-07 배지 표시, PLANNING R4)
 * @param paths         배선 경로 목록
 */
@JsonInclude(JsonInclude.Include.NON_NULL)
public record WiringResult(
        boolean assumedTrench,
        List<WiringPath> paths
) {

    /**
     * @param kind    power|network|plumbing|air
     * @param color   red|blue|green (S6 색상 규약)
     * @param coords  경로 좌표열 [[x,y], ...] (트렌치 시작점 → 단말)
     * @param lengthM 경로 길이(m)
     * @param label   경로 라벨(예: "5kW", "유선 1회선")
     */
    public record WiringPath(
            String kind,
            String color,
            List<List<Double>> coords,
            double lengthM,
            String label
    ) {
    }
}
