package com.nurulwafa.nufakuproject;

import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;

public class PelanggaranSantriActivity extends AppCompatActivity {
    private RecyclerView rvPelanggaran;
    private PelanggaranAdapter adapter;
    private ArrayList<Pelanggaran> pelanggaranList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pelanggaran_santri);

        rvPelanggaran = findViewById(R.id.rvPelanggaran);
        rvPelanggaran.setLayoutManager(new LinearLayoutManager(this));

        pelanggaranList = new ArrayList<>();
        adapter = new PelanggaranAdapter(pelanggaranList);
        rvPelanggaran.setAdapter(adapter);

        String loginKey = getIntent().getStringExtra("login_key");
        String loginValue = getIntent().getStringExtra("login_value");

        if (loginKey != null && loginValue != null) {
            getDataSantri(loginKey, loginValue);
        } else {
            Toast.makeText(this, "Data login tidak ditemukan", Toast.LENGTH_SHORT).show();
        }
    }

    private void getDataSantri(String key, String value) {
        String baseUrl = ApiHelper.getBaseUrl();
        String requestUrl = baseUrl + "getDataSantri?" + key + "=" + value;

        Log.d("PEL_REQ_URL", "URL: " + requestUrl);

        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, requestUrl, null,
                response -> {
                    try {
                        if (response.getBoolean("status")) {
                            pelanggaranList.clear();

                            // Ambil objek "data"
                            JSONObject dataObject = response.getJSONObject("data");

                            // Ambil array "pelanggaran_santri" dari dalam "data"
                            JSONArray pelanggaranArray = dataObject.getJSONArray("pelanggaran_santri");

                            for (int i = 0; i < pelanggaranArray.length(); i++) {
                                JSONObject pelanggaran = pelanggaranArray.getJSONObject(i);

                                String nama = pelanggaran.getString("nama_santri");
                                String namaPelanggaran = pelanggaran.optString("pelanggaran", "-");
                                String tanggal = pelanggaran.optString("tanggal", "-");
                                String sanksi = pelanggaran.optString("sanksi", "-");
                                String keterangan = pelanggaran.optString("keterangan", "-");

                                Pelanggaran p = new Pelanggaran(nama, namaPelanggaran, tanggal, sanksi, keterangan);
                                pelanggaranList.add(p);
                            }

                            adapter.notifyDataSetChanged();
                        } else {
                            Toast.makeText(this, "Data tidak ditemukan", Toast.LENGTH_SHORT).show();
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                        Toast.makeText(this, "Gagal parsing data", Toast.LENGTH_SHORT).show();
                    }
                },
                error -> Toast.makeText(this, "Gagal ambil data: " + error.getMessage(), Toast.LENGTH_SHORT).show()
        );

        RequestQueue queue = Volley.newRequestQueue(this);
        queue.add(request);
    }
}
