package com.interplug.qcast.biz.estimate.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import lombok.Data;

@Data
public class EstimateRequest {
  @Schema(description = "물건번호")
  private String objectNo;

  @Schema(description = "플랜번호")
  private String planNo;

  @Schema(description = "판매점ID")
  private String saleStoreId;

  @Schema(description = "SAP 판매점코드")
  private String sapSalesStoreCd;

  @Schema(description = "안건명")
  private String objectName;

  @Schema(description = "경칭")
  private String objectNameOmit;

  @Schema(description = "시공방법")
  private String constructSpecification;

  @Schema(description = "설치높이")
  private String setupHeight;

  @Schema(description = "날씨포인트")
  private String weatherPoint;

  @Schema(description = "지붕재 종류 ID")
  private String roofKindId;

  @Schema(description = "경사")
  private String slope;

  @Schema(description = "각도")
  private String angle;

  @Schema(description = "지붕재 아이템 CLASS ID")
  private String roofMaterialClassId;

  @Schema(description = "지붕재 아이템 ID")
  private String roofMaterialId;

  @Schema(description = "가대 설치 ID")
  private String supportMethodId;

  @Schema(description = "모델")
  private String moduleModel;

  @Schema(description = "담당자")
  private String charger;

  @Schema(description = "견적서 유효기간")
  private String estimateValidityTerm;

  @Schema(description = "결정 플랜")
  private String decisionPlan;

  @Schema(description = "넘버")
  private String number;

  @Schema(description = "시스템용량")
  private String capacity;

  @Schema(description = "면조도구분")
  private String surfaceType;

  @Schema(description = "강설량")
  private String snowfall;

  @Schema(description = "표준풍속검사")
  private String standardWindSpeedCheck;

  @Schema(description = "옵션커버")
  private String optionCover;

  @Schema(description = "한화여부")
  private String hanwfaFlg;

  @Schema(description = "기준종류ID")
  private String standKindId;

  @Schema(description = "기준풍속ID")
  private String standardWindSpeedId;

  @Schema(description = "가대 메이커명")
  private String supportMeaker;

  @Schema(description = "소비세ID")
  private String consumptionTaxId;

  @Schema(description = "상태코드")
  private String status;

  @Schema(description = "사용자아이디")
  private String userId;

  @Schema(description = "삭제여부")
  private String delFlg;

  @Schema(description = "파워컨디셔너")
  private String pcTypeNo;

  @Schema(description = "북면설치여부")
  private String northArrangement;

  @Schema(description = "시공방법명")
  private String constructSpecificationMulti;

  @Schema(description = "지붕재명")
  private String roofMaterialIdMulti;

  @Schema(description = "가대명")
  private String supportMethodIdMulti;

  @Schema(description = "가대 메이커명")
  private String supportMeakerMulti;

  @Schema(description = "다른 지붕재여부")
  private String diffRoofEnabled;

  @Schema(description = "발주여부")
  private String orderFlg;

  @Schema(description = "도면저장여부")
  private String drawingFlg;

  @Schema(description = "견적일")
  private String estimateDate;

  @Schema(description = "견적서번호")
  private String docNo;

  @Schema(description = "견적서타입")
  private String estimateType;

  @Schema(description = "후일자료제출")
  private String fileFlg;

  @Schema(description = "견적서 특이사항")
  private String estimateOption;

  @Schema(description = "PKG 단가")
  private String pkgAsp;

  @Schema(description = "가격코드")
  private String priceCd;

  @Schema(description = "QSP 동기화 여부")
  private String syncFlg;

  @Schema(description = "비고")
  private String remarks;

  @Schema(description = "아이템번호 목록")
  private String[] arrItemId;

  // 다운로드 관련 조건
  @Schema(description = "검색 - 다운로드 구분")
  private String schDownload;

  @Schema(description = "검색 - 다운로드 정가 표시여부")
  private String schUnitPriceFlg;

  @Schema(description = "검색 - 다운로드 표시여부")
  private String schDisplayFlg;

  @Schema(description = "검색 - 가대중량표 포함 여부")
  private String schWeightFlg;

  @Schema(description = "검색 - 도면/시뮬레이션 포함 여부")
  private String schDrawingFlg;

  @Schema(description = "검색 - 아이템 그룹")
  private String schItemGroup;

  @Schema(description = "검색 - 아이템 BOM 제외여부")
  private String schBomNotExist;

  // 데이터 목록 관련 정보
  @Schema(description = "지붕재 목록")
  List<RoofRequest> roofList;

  @Schema(description = "아이템 목록")
  List<ItemRequest> itemList;

  @Schema(description = "다운로드 파일명")
  private String fileName;

  @Schema(description = "발전시뮬레이션 타입")
  private String pwrGnrSimType;
}
