package com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.crackdownStatus;

import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoat;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.FishingBoatVersion;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.fishingBoat.Violation;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.processResult.ProcessResult;
import com.dbnt.faisp.main.faStatistics.crackdownsStatus.model.sailor.Sailor;
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 = "crackdown_status")
public class CrackdownStatus extends CrackdownStatusBaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "cds_key")
    private Integer cdsKey;

    @Transient
    private List<Violation> violationList;
    @Transient
    private FishingBoat fishingBoat;
    @Transient
    private List<FishingBoatVersion> fishingBoatVersionList;
    @Transient
    private ProcessResult processResult;
    @Transient
    private List<Sailor> sailorList;

    @Transient
    private String crackdownPoliceEtc;
    @Transient
    private String crackdownBoatEtc;

    @Transient
    private Integer fbKey;
    @Transient
    private String boatNameKr;
    @Transient
    private String fisheryType;
    @Transient
    private String boatNnySung;
    @Transient
    private String boatMaterial;
    @Transient
    private String boatNnySi;
    @Transient
    private Double tonCnt;
    @Transient
    private String boat_material;
    @Transient
    private String violationStr;


    @Transient
    private String sailorNameKr;

    @Transient
    private String processStatus;

    @Transient
    private Integer restrictionCaptin;
    @Transient
    private Integer notRestrictionCaptin;
    @Transient
    private Integer restrictionMate;
    @Transient
    private Integer notRestrictionMate;
    @Transient
    private Integer restrictionWarden;
    @Transient
    private Integer notRestrictionWarden;
    @Transient
    private Integer restrictionSailor;
    @Transient
    private Integer notRestrictionSailor;
    @Transient
    private Integer restrictionTotal;
    @Transient
    private Integer notRestrictionTotal;
    @Transient
    private Integer unlicensedOperationTotal;
    @Transient
    private Integer specificImpossibilityTotal;
    @Transient
    private Integer eezTotal;
    @Transient
    private Integer invasionTerritorialWatersTotal;
    @Transient
    private List<Integer> violationDeleteKeyList;
    @Transient
    private List<Integer> sailorDeleteKeyList;

    @Transient
    private String year;
    @Transient
    private String month;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate napoDate;
    @Transient
    private String violation;
    @Transient
    private Integer tonStartCnt;
    @Transient
    private Integer tonEndCnt;
    @Transient
    private String catchFishSpecies;
    @Transient
    private String catchCnt;
    @Transient
    private String offenseFishSpecies;
    @Transient
    private String offenseCatchCnt;
    @Transient
    private String offenseIllegalWasteQuantity;
    @Transient
    private String offenseQuantity;
    @Transient
    private String offenseAmount;
    @Transient
    private String damboPayment;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate paymentPaymentDate;
    @Transient
    private Integer damboUnpaidAmount;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate consignmentStartDate;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate consignmentEndDate;
    /*@Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate evictionDt;*/
    @Transient
    private String isEvictionDt;
    /*@Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate returnDt;*/
    @Transient
    private String isReturnDt;
    /*@Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate confiscationDt;*/
    @Transient
    private String isConfiscationDt;
    @Transient
    private String isConsignmentStartDt;
    @Transient
    private String isDamboUnpaidAmount;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate boatDisposalDate;
    @Transient
    private String boatDisposalType;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate directHandoverDate;
    @Transient
    private String isDirectHandoverDt;
    @Transient
    private String handoverSeaPointLat;
    @Transient
    private String handoverSeaPointLon;
    @Transient
    private String handoverSeaPointDetail;
    @Transient
    private String handoverBoat;
    @Transient
    private String middleTakeoverBoat;
    @Transient
    private String captin;
    @Transient
    private String mate;
    @Transient
    private String warden;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate fieldIvsgtNapoDate;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate fieldIvsgtReleaseDate;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate pressurizedStartDate;
    @Transient
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate pressurizedEndDate;
    @Transient
    private String distance;
    @Transient
    private String confiscationFrame;
    @Transient
    private String confiscationWidth;
    @Transient
    private String confiscationJo;
    @Transient
    private String confiscationGae;
    @Transient
    private String confiscationEtc;

}
