package com.lingyue.ai.dto.ner;

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

import java.util.List;

/**
 * NER 请求 DTO
 *
 * @author lingyue
 * @since 2026-01-19
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Schema(description = "NER 请求")
public class NerRequest {

    @Schema(description = "文档ID")
    private String documentId;

    @Schema(description = "待提取的文本内容", required = true)
    private String text;

    @Schema(description = "指定要提取的实体类型（可选），为空则提取所有类型", 
            example = "[\"PERSON\", \"ORG\", \"LOC\", \"DATE\", \"NUMBER\", \"DEVICE\"]")
    private List<String> entityTypes;

    @Schema(description = "是否提取关系", example = "true")
    @Builder.Default
    private Boolean extractRelations = true;

    @Schema(description = "用户ID")
    private String userId;
}
