package com.eactive.eai.rms.onl.loader.layout.deploy;

import com.eactive.eai.data.entity.onl.transformer.layout.LayoutEntity;
import com.eactive.eai.rms.onl.loader.service.DeployResource;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import edu.emory.mathcs.backport.java.util.Arrays;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Data
public class LayoutDeploy extends DeployResource<LayoutEntity> {

   @Override
   public LayoutEntity probeForExample() {
      LayoutEntity probe = new LayoutEntity();
      probe.setLoutname(this.loutname);
      return probe;
   }

   @Override
   public List<String> exactMatchFields() {
      return Arrays.asList(new String[]{
            "loutname"
      });
   }

   /** 레이아웃 명 */
   @JsonProperty("Layout")
   private String loutname;

   /** 레이아웃 유형 명 */
   @JsonProperty("LayoutPattern")
   private String loutptrnname;

   /** 레이아웃 설명 */
   @JsonProperty("LayoutDescription")
   private String loutdesc;

   /** 최종 수정 시각 */
   @JsonProperty("LastDateTime")
   @JsonFormat(pattern = "yyyyMMddHHmmssSS")
   private LocalDateTime lastamndhms;

   /** 업무구분명(코드) */
   @JsonProperty("BusinessCode")
   private String eaibzwkdstcd;

   /** 어플리케이션명 */
   @JsonProperty("ApplicationName")
   private String uapplname;

   /** 시스템인터페이스명 */
   @JsonProperty("InterfaceName")
   private String sysintfacname;

   /** 작성자 */
   @JsonProperty("author")
   private String author;

   /** EAI서버구분코드 */
   @JsonProperty("ServerType")
   private String eaisevrdstcd;

   /** 변경관리상태구분코드 */
   @JsonProperty("StatusCode")
   private String modfimgtstusdstcd;

   /** 사용여부 */
   @JsonProperty("UseYn")
   private String useyn;

   /** 버전정보 */
   @JsonProperty("VersionInfo")
   private String verinfo;
   
   @JsonProperty("Items")
   private List<LayoutItemDeploy> layoutItems;
}
