package com.sc.sicanet.migracion_sicanet.response;

import org.springframework.http.ResponseEntity;
import org.springframework.validation.Errors;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class ErrorResponse {
    private int code;
    private String  campo;
    private String errorMessage;

    public ErrorResponse() {}

    public ErrorResponse(int code, String campo, String errorMessage) {
        this.code = code;
        this.campo = campo;
        this.errorMessage = errorMessage;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getCampo() {
        return campo;
    }

    public void setCampo(String campo) {
        this.campo = campo;
    }

    public String getErrorMessage() {
        return errorMessage;
    }

    public void setErrorMessage(String errorMessage) {
        this.errorMessage = errorMessage;
    }

    public static List<ErrorResponse> validateError(Errors errors) {
        List<ErrorResponse> errores = new ArrayList<>();
        if (errors.hasErrors()) {
            // Convertir los errores en una lista de mensajes
            errores = errors.getAllErrors().stream()
                    .map(error -> new ErrorResponse(400, ((org.springframework.validation.FieldError) error).getField(), error.getDefaultMessage()))
                    .collect(Collectors.toList());
        }
        return errores;
    }
}
