package com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model;

import com.dbnt.faisp.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 javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Getter
@Setter
@Entity
@NoArgsConstructor
@DynamicInsert
@DynamicUpdate
@Table(name = "international_crime_arrest")
public class InternationalCrimeArrest extends BaseModel {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "ica_key")
    private Integer icaKey;
    @Column(name = "organ")
    private String organ;
    @Column(name = "department")
    private String department;
    @Column(name = "crime_type")
    private String crimeType;
    @Column(name = "violation_type")
    private String violationType;
    @Column(name = "crime_name")
    private String crimeName;
    @Column(name = "smuggling_amount")
    private String smugglingAmount;
    @Column(name = "occur_table")
    private String occurTable;
    @Column(name = "arrest_table")
    private String arrestTable;
    @Column(name = "suspect_table")
    private String suspectTable;
    @Column(name = "crime_awareness_dt")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate crimeAwarenessDt;
    @Column(name = "case_sent_dt")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate caseSentDt;
    @Column(name = "process_result")
    private String processResult;
    @Column(name = "other_crime")
    private String otherCrime;
    @Column(name = "case_num")
    private String caseNum;
    @Column(name = "case_overview")
    private String caseOverview;
    @Column(name = "sea_area")
    private String seaArea;
    @Column(name = "arrest_area")
    private String arrestArea;
    @Column(name = "means")
    private String means;
    @Column(name = "purpose")
    private String purpose;
    @Column(name = "smuggled_goods")
    private String smuggledGoods;
    @Column(name = "crackdown_personel")
    private Integer crackdownPersonel;
    @Column(name = "violation_amount")
    private String violationAmount;
    @Column(name = "destination")
    private String destination;
    @Column(name = "content_status")
    private String contentStatus;
    @Column(name = "crime_form")
    private String crimeForm;
    @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 List<SuspectPersonInfo> suspectPersonInfoList;
    @Transient
    private List<Integer> deleteSpiKeyList;
    @Transient
    private String processResultEtc;
    @Transient
    private String smuggledGoodsEtc;
    @Transient
    private String meansEtc;
    @Transient
    private String purposesEtc;
}
