import java.util.List;

/**
 * Muatan permintaan tidak lolos pemeriksaan. Membawa daftar galat per field
 * agar router bisa menyusun respons 400 dengan rincian terstruktur — padanan
 * MethodArgumentNotValidException pada Spring MVC.
 */
public class ValidasiGagalException extends ApiException {

    private final List<String> galat;

    public ValidasiGagalException(String pesan) {
        this(List.of(pesan));
    }

    public ValidasiGagalException(List<String> galat) {
        super(400, "validasi gagal: " + String.join("; ", galat));
        this.galat = List.copyOf(galat);
    }

    /** Rincian galat per field, siap ditampilkan sebagai array JSON. */
    public List<String> galat() {
        return galat;
    }
}
