package com.zioinfo.kintex.module.m4;

import com.zioinfo.kintex.module.m4.dto.UtilityOrderDto;
import com.zioinfo.kintex.module.m4.dto.UtilityQuote;
import com.zioinfo.kintex.module.m4.dto.UtilityQuoteRequest;
import com.zioinfo.kintex.module.m4.dto.WiringRequest;
import com.zioinfo.kintex.module.m4.dto.WiringResult;

/** M4 유틸리티 설계 서비스 계약(전기·조명 / 네트워크·급배수). */
public interface UtilityService {

    /** 자동 견적 — 기기 목록 kW 합산 + 분전반 산출 + 네트워크/급배수 요금(요율 룰셋 기준). 완성 구현. */
    UtilityQuote quote(UtilityQuoteRequest request);

    /** 배선 산출 — 단말→최근접 트렌치 최단 경로(PostGIS). S6 오버레이 원천. */
    WiringResult computeWiring(String eventId, String hallId, String boothId, WiringRequest request);

    /** 신청 제출 + 위치표시도(PDF) 생성 트리거(수기 작도 대체). */
    UtilityOrderDto submitOrder(String eventId, String boothId, UtilityQuoteRequest request);

    /** 신청 조회. */
    UtilityOrderDto getOrder(String eventId, String boothId);
}
