package com.knecon.fforesight.service.viewerdoc.layers;

import java.awt.Color;
import java.util.List;

import com.knecon.fforesight.service.viewerdoc.LayerIdentifier;
import com.knecon.fforesight.service.viewerdoc.model.Visualizations;

import lombok.Getter;

public class IdpLayerConfig extends AbstractLayerGroup {

    @Getter
    public final LayerIdentifier groupIdentifier = LayerIdentifier.KNECON_AZURE_IDP;

    public static final LayerGroup CONFIG_INSTANCE = new IdpLayerConfig();

    protected final Visualizations figures = Visualizations.builder().layer(LayerIdentifier.IDP_FIGURES).visibleByDefault(true).build();
    protected final Visualizations tables = Visualizations.builder().layer(LayerIdentifier.IDP_TABLES).visibleByDefault(true).build();
    protected final Visualizations keyValuePairs = Visualizations.builder().layer(LayerIdentifier.IDP_KV_PAIRS).visibleByDefault(true).build();
    protected final Visualizations paragraphs = Visualizations.builder().layer(LayerIdentifier.IDP_PARAGRAPHS).build();
    protected final Visualizations sections = Visualizations.builder().layer(LayerIdentifier.IDP_SECTIONS).build();
    protected final Visualizations lines = Visualizations.builder().layer(LayerIdentifier.IDP_LINES).build();
    protected final Visualizations lists = Visualizations.builder().layer(LayerIdentifier.IDP_LIST).visibleByDefault(true).build();
    protected final Visualizations barcodes = Visualizations.builder().layer(LayerIdentifier.IDP_BARCODES).visibleByDefault(true).build();

    protected static final Color TABLE_COLOR = new Color(102, 205, 170);
    protected static final Color INNER_LINES_COLOR = new Color(255, 175, 175);
    protected static final Color SECTION_COLOR = new Color(50, 50, 50);
    protected static final Color SECTION_HEADING_COLOR = new Color(162, 56, 56);
    protected static final Color TITLE_COLOR = new Color(221, 25, 25);
    protected static final Color HEADER_FOOTER_COLOR = new Color(171, 131, 6);
    protected static final Color FOOTNOTE_COLOR = new Color(6, 64, 171);
    protected static final Color FORMULA_COLOR = new Color(80, 171, 6);
    protected static final Color PARAGRAPH_COLOR = new Color(70, 130, 180);
    protected static final Color IMAGE_COLOR = new Color(253, 63, 146);
    protected static final Color KEY_VALUE_BBOX_COLOR = new Color(0, 39, 85);
    protected static final Color KEY_COLOR = new Color(30, 92, 172);
    protected static final Color VALUE_COLOR = new Color(30, 172, 146);
    protected static final Color LINES_COLOR = new Color(152, 45, 179);


    @Override
    public List<Visualizations> getVisualizations() {

        return List.of(paragraphs, sections, figures, tables, keyValuePairs, lines, lists, barcodes);
    }

}
