package domain.model;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.quarkus.runtime.annotations.RegisterForReflection;

/**
 * Representa un código de error de la aplicación.
 */
@RegisterForReflection
public record ErrorCode(
        @JsonProperty("backend_code") String backendCode,
        @JsonProperty("http_code") String httpCode,
        @JsonProperty("status_code") String statusCode,
        @JsonProperty("description") String description,
        @JsonProperty("status") String status
) {
    /**
     * Convierte de forma segura el 'httpCode' a un código de estado HTTP numérico.
     * @return El código de estado HTTP como un entero.
     */
    public int getHttpStatusCode() {
        try {
            return Integer.parseInt(this.httpCode);
        } catch (NumberFormatException e) {
            return 500;
        }
    }
}