package com.kamco.cd.kamcoback.postgres.entity;

import com.kamco.cd.kamcoback.postgres.CommonDateEntity;
import jakarta.persistence.*;
import jakarta.validation.constraints.Size;
import java.time.ZonedDateTime;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Entity
@Table(name = "tb_map_sheet_mng_hst")
public class MapSheetMngHstEntity extends CommonDateEntity {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  @Column(name = "hst_uid")
  private Long hstUid;

  @Column(name = "mng_yyyy")
  private Integer mngYyyy;

  @Column(name = "map_sheet_code")
  private Integer mapSheetCode;

  @Column(name = "map_sheet_num")
  private String mapSheetNum;

  @Column(name = "map_sheet_name")
  private String mapSheetName;

  @Column(name = "map_sheet_code_src")
  private Integer mapSheetCodeSrc;

  @Column(name = "scale_ratio")
  private Integer scaleRatio;

  @Column(name = "data_state", length = 20)
  private String dataState;

  @Column(name = "data_state_dttm")
  private ZonedDateTime dataStateDttm;

  @Column(name = "use_inference")
  private String useInference;

  @Column(name = "use_inference_dttm")
  private ZonedDateTime useInferenceDttm;

  @Column(name = "map_sheet_path")
  private String mapSheetPath;

  @Column(name = "ref_map_sheet_num")
  private String refMapSheetNum;

  @Column(name = "created_uid")
  private Long createdUid;

  @Column(name = "updated_uid")
  private Long updatedUid;

  @Size(max = 20)
  @Column(name = "sync_state", length = 20)
  private String syncState;

  @Size(max = 20)
  @Column(name = "sync_check_state", length = 20)
  private String syncCheckState;

  @Column(name = "sync_strt_dttm")
  private ZonedDateTime syncStrtDttm;

  @Column(name = "sync_end_dttm")
  private ZonedDateTime syncEndDttm;

  @Column(name = "sync_check_strt_dttm")
  private ZonedDateTime syncCheckStrtDttm;

  @Column(name = "sync_check_end_dttm")
  private ZonedDateTime syncCheckEndDttm;

  @Column(name = "tif_size_bytes")
  private Long tifSizeBytes;

  @Column(name = "tfw_size_bytes")
  private Long tfwSizeBytes;

  @Column(name = "total_size_bytes")
  private Long totalSizeBytes;

  @Size(max = 100)
  @Column(name = "sync_tif_file_name", length = 100)
  private String syncTifFileName;

  @Size(max = 100)
  @Column(name = "sync_tfw_file_name", length = 100)
  private String syncTfwFileName;

  @Size(max = 100)
  @Column(name = "sync_check_tif_file_name", length = 100)
  private String syncCheckTifFileName;

  @Size(max = 100)
  @Column(name = "sync_check_tfw_file_name", length = 100)
  private String syncCheckTfwFileName;
}
