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

import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.IdRemoval;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualForceRedaction;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualLegalBasisChange;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRecategorization;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualRedactionEntry;
import com.iqser.red.service.persistence.service.v1.api.shared.model.annotations.entitymapped.ManualResizeRedaction;

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

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

    @Builder.Default
    private Set<IdRemoval> idsToRemove = new HashSet<>();

    @Builder.Default
    private Set<ManualRedactionEntry> entriesToAdd = new HashSet<>();

    @Builder.Default
    private Set<ManualForceRedaction> forceRedactions = new HashSet<>();

    @Builder.Default
    private Set<ManualRecategorization> recategorizations = new HashSet<>();

    @Builder.Default
    private Set<ManualLegalBasisChange> legalBasisChanges = new HashSet<>();

    @Builder.Default
    private Set<ManualResizeRedaction> resizeRedactions = new HashSet<>();

    @Deprecated(forRemoval = true)
    @Builder.Default
    private Map<String, List<Comment>> comments = new HashMap<>();

}
