Anote seus campos para descrever rótulos, controles e validações que serão refletidos no OpenAPI (x-ui) e consumidos pelo frontend.
import jakarta.validation.constraints.*;
import org.praxisplatform.uischema.extension.annotation.UISchema;
import org.praxisplatform.uischema.FieldControlType;
import org.praxisplatform.uischema.FieldDataType;
public class PessoaDTO {
@UISchema(label = "Nome Completo", placeholder = "Ex.: Maria da Silva")
@NotBlank @Size(max = 120)
private String nomeCompleto;
@UISchema(type = FieldDataType.NUMBER, controlType = FieldControlType.INPUT, label = "Departamento")
@NotNull
private Long departamentoId;
@UISchema(type = FieldDataType.DATE, label = "Data de Admissão")
private java.time.LocalDate dataAdmissao;
@UISchema(type = FieldDataType.BOOLEAN, controlType = FieldControlType.SWITCH, label = "Ativo?")
private Boolean ativo;
}
@UISchema para enriquecer o contrato (labels, tipos, placeholders, máscaras etc.).DATE, NUMBER, BOOLEAN) comunicam ao frontend a melhor experiência por padrão.Você pode combinar com endpoints de options (POST /options/filter, GET /options/by-ids) e anotar o label no DTO.