package com.zioinfo.kintex.module.m3;

import com.zioinfo.kintex.module.m3.dto.DesignPlanDto;
import com.zioinfo.kintex.module.m3.dto.DesignSaveRequest;
import com.zioinfo.kintex.module.m3.dto.DesignSpec;
import com.zioinfo.kintex.rules.ComplianceReport;

/** M3 부스 설계 스튜디오 서비스 계약. */
public interface DesignService {

    /** 설계안 조회(version=null이면 최신). */
    DesignPlanDto getDesign(String boothId, Integer version);

    /** 설계 저장. 저장 시 규정 사전검증 수행. */
    DesignPlanDto saveDesign(String boothId, DesignSaveRequest request);

    /**
     * 규정 사전검증(높이 5m·리깅 D-7·방염·복층) — 제출 전 플래깅.
     * 설계 스펙만으로 평가 가능하므로 매퍼 없이 룰 엔진으로 즉시 산출한다.
     */
    ComplianceReport precheck(DesignSpec spec);
}
