package com.interplug.qcast.biz.master;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Schema(description = "Api 시공법 목록 조회 요청 객체 빌더")
public class ApiConstructionBuilder {

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

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

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

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

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

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

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

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

	@Schema(description = "적설량")
	private String stdSnowLd;

	@Schema(description = "경사도코드")
	private String inclCd;
	
	@Schema(description = "서까래기초코드")
	private String raftBaseCd;
	
	@Schema(description = "하제(망둥어)피치")
	private Integer roofPitch;

	public ApiConstructionBuilder setModuleTpCd(String moduleTpCd){
        this.moduleTpCd = moduleTpCd;
        return this;
    }
	
	public ApiConstructionBuilder setRoofMatlCd(String roofMatlCd){
        this.roofMatlCd = roofMatlCd;
        return this;
    }
	
	public ApiConstructionBuilder setTrestleMkrCd(String trestleMkrCd){
        this.trestleMkrCd = trestleMkrCd;
        return this;
    }
	
	public ApiConstructionBuilder setConstMthdCd(String constMthdCd){
        this.constMthdCd = constMthdCd;
        return this;
    }
	
	public ApiConstructionBuilder setRoofBaseCd(String roofBaseCd){
        this.roofBaseCd = roofBaseCd;
        return this;
    }
	
	public ApiConstructionBuilder setIlluminationTp(String illuminationTp){
        this.illuminationTp = illuminationTp;
        return this;
    }
	
	public ApiConstructionBuilder setInstHt(String instHt){
        this.instHt = instHt;
        return this;
    }
	
	public ApiConstructionBuilder setStdWindSpeed(String stdWindSpeed){
        this.stdWindSpeed = stdWindSpeed;
        return this;
    }
	
	public ApiConstructionBuilder setStdSnowLd(String stdSnowLd){
        this.stdSnowLd = stdSnowLd;
        return this;
    }
	
	public ApiConstructionBuilder setInclCd(String inclCd){
        this.inclCd = inclCd;
        return this;
    }
	
	public ApiConstructionBuilder setRaftBaseCd(String raftBaseCd){
        this.raftBaseCd = raftBaseCd;
        return this;
    }
	
	public ApiConstructionBuilder setRoofPitch(Integer roofPitch){
        this.roofPitch = roofPitch;
        return this;
    }
	
	public ApiConstructionBuilder (String moduleTpCd, String roofMatlCd, String trestleMkrCd, String constMthdCd, String roofBaseCd, String illuminationTp, 
			String instHt, String stdWindSpeed, String stdSnowLd, String inclCd, String raftBaseCd, Integer roofPitch) {
        this.moduleTpCd = moduleTpCd;
        this.roofMatlCd = roofMatlCd;
        this.trestleMkrCd = trestleMkrCd;
        this.constMthdCd = constMthdCd;
        this.roofBaseCd = roofBaseCd;
        this.illuminationTp = illuminationTp;
        this.instHt = instHt;
        this.stdWindSpeed = stdWindSpeed;
        this.stdSnowLd = stdSnowLd;
        this.inclCd = inclCd;
        this.raftBaseCd = raftBaseCd;
        this.roofPitch = roofPitch;
    }
	
	public ApiConstructionBuilder build(){
        return new ApiConstructionBuilder(moduleTpCd, roofMatlCd, trestleMkrCd, constMthdCd, roofBaseCd, illuminationTp, 
    			instHt, stdWindSpeed, stdSnowLd, inclCd, raftBaseCd, roofPitch);
    }
	
}

