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

import com.interplug.qcast.biz.file.dto.FileResponse;
import com.interplug.qcast.biz.pwrGnrSimulation.dto.PwrGnrSimResponse;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import lombok.Data;

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

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

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

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

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

  @Schema(description = "날씨포인트")
  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 drawingEstimateCreateDate;

  @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 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 standardWindSpeedName;

  @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 estimateDate;

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

  @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 = "비고")
  private String remarks;

  @Schema(description = "갱신일")
  private String lastEditDatetime;

  // 가격 관련 정보
  @Schema(description = "총 수량")
  private String totAmount;

  @Schema(description = "총 용량")
  private String totVol;

  @Schema(description = "총 용량 (Kw)")
  private String totVolKw;

  @Schema(description = "PKG 총액")
  private String pkgTotPrice;

  @Schema(description = "공급가액")
  private String supplyPrice;

  @Schema(description = "부가세")
  private String vatPrice;

  @Schema(description = "총액")
  private String totPrice;

  // 물건정보 정보
  @Schema(description = "물건명")
  private String objectName;

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

  @Schema(description = "도도부현명")
  private String prefName;

  @Schema(description = "지역명")
  private String areaName;

  @Schema(description = "물건정보 비고")
  private String objectRemarks;

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

  @Schema(description = "판매점 1차점 ID")
  private String firstAgentId;

  @Schema(description = "판매점 레벨")
  private String saleStoreLevel;

  @Schema(description = "1차점 판매점명")
  private String firstSaleStoreName;

  @Schema(description = "하위 판매점명")
  private String agencySaleStoreName;

  // 판매점 정보
  @Schema(description = "고객 판매점명")
  private String custSaleStoreName;

  @Schema(description = "고객 경칭")
  private String custOmit;

  @Schema(description = "판매점명")
  private String saleStoreName;

  @Schema(description = "우편번호")
  private String zipNo;

  @Schema(description = "주소")
  private String address;

  @Schema(description = "전화번호")
  private String tel;

  @Schema(description = "Fax번호")
  private String fax;

  @Schema(description = "법인번호")
  private String bizNo;

  // PKG 정보
  @Schema(description = "주택패키지 여부")
  private String pkgYn;

  @Schema(description = "주택패키지 번호")
  private String pkgNo;

  // 데이터 목록 관련 정보
  @Schema(description = "아이템 목록")
  List<ItemResponse> itemList;

  @Schema(description = "견적서 특이사항 목록")
  List<NoteResponse> noteList;

  @Schema(description = "첨부파일 목록")
  List<FileResponse> fileList;

  @Schema(description = "지붕재 정보")
  RoofInfoResponse roofInfo;

  @Schema(description = "발전시뮬레이션 정보")
  PwrGnrSimResponse pwrGnrSim;
}
