package com.interplug.qcast.biz.master.dto.quotation;

import java.util.List;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Schema(description = "Api 견적서 아이템 조회 가대 요청 객체")
public class ApiQuotationItemTrestleRequest {

  @Schema(description = "모듈타입코드")
  @NotNull
  public String moduleTpCd;

  @Schema(description = "지붕재코드")
  @NotNull
  public String roofMatlCd;

  @Schema(description = "가대메이커코드")
  @NotNull
  public String trestleMkrCd;

  @Schema(description = "공법코드")
  @NotNull
  public String constMthdCd;

  @Schema(description = "지붕기초코드")
  @NotNull
  public String roofBaseCd;

  @Schema(description = "면조도")
  @NotNull
  public String illuminationTp;

  @Schema(description = "설치높이")
  @NotNull
  public String instHt;

  @Schema(description = "풍속")
  @NotNull
  public String stdWindSpeed;

  @Schema(description = "적설량")
  @NotNull
  public Integer stdSnowLd;

  @Schema(description = "경사도코드")
  @NotNull
  public String inclCd;

  @Schema(description = "시공법")
  @NotNull
  public String constTp;

  @Schema(description = "혼합모듈번호")
  public Integer mixMatlNo;

  @Schema(description = "서까래기초코드")
  public String raftBaseCd;

  @Schema(description = "하제(망둥어)피치")
  public Integer roofPitch;

  @Schema(description = "처마커버설치여부")
  @NotNull
  public String cvrYn;

  @Schema(description = "낙설방지금구설치여부")
  @NotNull
  public String snowGdYn;

  @Schema(description = "치조배치여부")
  @NotNull
  public String plvrYn;

  @Schema(description = "모듈 총 수")
  @NotNull
  public Integer moduleTotCnt;

  @Schema(description = "모듈 총 단 수")
  @NotNull
  public Integer moduleRowsTotCnt;

  @Schema(description = "노출 하면 총 수")
  @NotNull
  public Integer exposedBottomTotCnt;

  @Schema(description = "노출 반 하면 총 수")
  @NotNull
  public Integer exposedHalfBottomTotCnt;

  @Schema(description = "노출 최 하면 총 수")
  @NotNull
  public Integer exposedLowerBottomTotCnt;

  @Schema(description = "노출 상면 총 수")
  @NotNull
  public Integer exposedTopTotCnt;

  @Schema(description = "노출 반 상면 총 수")
  @NotNull
  public Integer exposedHalfTopTotCnt;

  @Schema(description = "접면 총 수")
  @NotNull
  public Integer touchedSurfaceTotCnt;

  @Schema(description = "반 접면 총 수")
  @NotNull
  public Integer touchedHalfSurfaceTotCnt;

  @Schema(description = "처마커버 총 수")
  @NotNull
  public Integer eavesTotCnt;

  @Schema(description = "반 처마커버 총 수")
  @NotNull
  public Integer eavesHalfTotCnt;

  @Schema(description = "모듈 단 정보")
  @NotNull
  public List<ApiQuotationItemModuleRowRequest> moduleRows;

  @Schema(description = "랙 사용 여부")
  @NotNull
  public String rackYn;

  @Schema(description = "랙 총 수")
  @NotNull
  public Integer rackTotCnt;

  @Schema(description = "랙 지지금구 총 수")
  @NotNull
  public Integer rackFittingTotCnt;

  @Schema(description = "랙")
  @NotNull
  public List<ApiQuotationItemRackRequest> racks;
}
