package com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type;

import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.iqser.red.service.dictionarymerge.commons.DictionaryEntry;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Type {

    private String id;
    private String type;
    private String label;
    private String hexColor;
    private String recommendationHexColor;
    private String skippedHexColor;
    private int rank;
    private boolean isHint;
    private boolean isCaseInsensitive;
    private boolean isRecommendation;
    private String description;
    private long version;
    private boolean addToDictionaryAction;
    private boolean dossierDictionaryOnly;
    private String dossierTemplateId;
    private String dossierId;
    private List<DictionaryEntry> entries = new ArrayList<>();
    private List<DictionaryEntry> falsePositiveEntries = new ArrayList<>();
    private List<DictionaryEntry> falseRecommendationEntries = new ArrayList<>();
    private boolean hasDictionary;
    private boolean systemManaged;
    private boolean autoHideSkipped;
    private OffsetDateTime softDeletedTime;


    // For auto-mappers
    @JsonIgnore
    public String getTypeId() {

        return this.id;
    }

}
