package com.knecon.fforesight.service.layoutparser.internal.api.data.taas;

import java.util.List;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Builder;
import lombok.Data;

@Data
@Builder
@Schema(description = "Object containing information about a Paragraph/Headline/Header/Footer.")
public class ParagraphData {

    @Schema(description = "The text of this Semantic Node, without any linebreaks.", example = "This is some text.")
    private String text;
    @Schema(description = "A list of text ranges in string offsets. Every character in any of the ranges is bold.", example = "[0, 15]")
    List<Range> boldTextBoundaries;
    @Schema(description = "A list of text ranges in string offsets. Every character in any of the ranges is italic.", example = "[0, 15]")
    List<Range> italicTextBoundaries;
    @Schema(description = "The line breaks in the text of this semantic node in string offsets. They are exclusive end. At the end of each semantic node there is an implicit linebreak.", example = "[5, 10]")
    List<Integer> linebreaks;
    @Schema(description = "The classification of this Paragraph.", allowableValues = "{paragraph, headline, header, footer}")
    private String classification;

    @Schema(description = "Describes the text orientation of this semantic node. Any semantic node only has a single text orientation.", allowableValues = "{ZERO, QUARTER_CIRCLE, HALF_CIRCLE, THREE_QUARTER_CIRCLE}")
    private String orientation;
    @Schema(description = "Describes the text direction in degrees of this semantic node. Any semantic node only has a single text direction.", minimum = "0", maximum = "359")
    private int textDirection;

}
