Endpoints

Diferente do JPA, quando temos uma entidade aninhada, não precisamos criar um DTO para ela, veja:

Se fosse no JPA, teríamos que criar uma PropsDTO.

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public class ProductDTO {

    private UUID id;
    private String department;
    private Double price;
    private Instant moment;
    private String name;
    private String description;

    private List<Prop> props = new ArrayList<>();

    public ProductDTO(Product entity) {
        this.id = entity.getId();
        this.department = entity.getDepartment();
        this.price = entity.getPrice();
        this.moment = entity.getMoment();
        this.name = entity.getName();
        this.description = entity.getDescription();

        this.props.addAll(entity.getProps());
    }
}

Atualizado