package com.dbnt.sims.ivsgtMgt.boardInvestigation.model;

import com.dbnt.sims.config.BaseModel;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import javax.persistence.*;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@Entity
@NoArgsConstructor
@DynamicInsert
@DynamicUpdate
@Table(name = "board_investigation")
public class BoardInvestigation extends BaseModel {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ivsgt_key")
    private Integer ivsgtKey;
    @Column(name = "ivsgt_type")
    private String ivsgtType;
    @Column(name = "content_title")
    private String contentTitle;
    @Column(name = "content_info")
    private String contentInfo;
    @Column(name = "content_main")
    private String contentMain;
    @Column(name = "content_status")
    private String contentStatus;
    @Column(name = "wrt_organ")
    private String wrtOrgan;
    @Column(name = "wrt_user_seq")
    private Integer wrtUserSeq;
    @Column(name = "wrt_nm")
    private String wrtNm;
    @Column(name = "wrt_dt")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime wrtDt;

    @Transient
    private Integer fileCnt;
    @Transient
    private List<IvsgtFile> fileList;
    @Transient
    private List<MultipartFile> multipartFileList;
    @Transient
    private List<String> contentInfos;
    @Transient
    private String hashTags;
    @Transient
    private ArrestType arrestType;
    @Transient
    private RelatedReports relatedReports;
    @Transient
    private List<RelatedReports> relatedReportsList;
    @Transient
    private Integer arrestTypeKey;
    @Transient
    private String arrestCd;
    @Transient
    private String arrestCd2;
    @Transient
    private String arrestCdName;
    @Transient
    private String arrestCd2Name;
}
