package com.nurulwafa.nufakuproject;

import android.content.Intent;
import android.os.Bundle;

import android.content.SharedPreferences;
import androidx.appcompat.app.AlertDialog;

import androidx.cardview.widget.CardView;

import android.util.Log;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class HomeActivity extends AppCompatActivity {

    String idSantri;
    CardView cardKesehatan;
    TextView txtKesehatan;
    ImageView imgKesehatan;

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        // Ambil data dari notifikasi (jika ada)
        Intent notifIntent = getIntent(); // jangan pakai nama 'intent'
        String idSantriFromNotif = notifIntent.getStringExtra("id_santri");
        String kondisiFromNotif = notifIntent.getStringExtra("kondisi_kesehatan");

// Simpan ke SharedPreferences jika berasal dari notifikasi
        if (idSantriFromNotif != null && kondisiFromNotif != null) {
            Log.d("NOTIF", "ID Santri dari Notif: " + idSantriFromNotif);
            SharedPreferences preferences = getSharedPreferences("santri", MODE_PRIVATE);
            SharedPreferences.Editor editor = preferences.edit();
            editor.putString("kondisi_kesehatan", kondisiFromNotif);
            editor.apply();

        }

        SharedPreferences preferences = getSharedPreferences("santri", MODE_PRIVATE);
        String idSantri = preferences.getString("id_santri", null);

        if (idSantri == null) {
            // Jika datang dari notifikasi
            if (getIntent().getBooleanExtra("from_notif", false)) {
                String idFromNotif = getIntent().getStringExtra("id_santri");
                if (idFromNotif != null) {
                    SharedPreferences.Editor editor = preferences.edit();
                    editor.putString("id_santri", idFromNotif);
                    editor.apply();
                    idSantri = idFromNotif;

                    // Log.d("HOME_ID_SANTRI", "Disimpan dari notifikasi: " + idSantri);
                }
            }

            if (idSantri == null) {
                Toast.makeText(this, "ID Santri tidak ditemukan!", Toast.LENGTH_SHORT).show();
                finish();
                return;
            }
        }

        // Terima login key dan value dari LoginActivity
        String loginKey = getIntent().getStringExtra("login_key");
        String loginValue = getIntent().getStringExtra("login_value");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home); // pastikan xml-nya activity_home.xml

        // Terima id_santri dari intent
        idSantri = getIntent().getStringExtra("id_santri");

        if (idSantri == null) {
            Toast.makeText(this, "ID Santri tidak ditemukan!", Toast.LENGTH_SHORT).show();
            finish();
            return;
        }
        String idWaliSantri = getIntent().getStringExtra("id_wali_santri");

        // Hubungkan semua CardView
        CardView cardPonpes = findViewById(R.id.cardPonpes);
        CardView cardSantri = findViewById(R.id.cardSantri);
        CardView cardWaliSantri = findViewById(R.id.cardWaliSantri);
        CardView cardKegiatan = findViewById(R.id.cardKegiatan);
        CardView cardPrestasi = findViewById(R.id.cardPrestasi);
        CardView cardPelanggaran = findViewById(R.id.cardPelanggaran);
        CardView cardSPP = findViewById(R.id.cardSPP);
        CardView cardBerita = findViewById(R.id.cardBerita);
        cardKesehatan = findViewById(R.id.cardKesehatan);
        txtKesehatan = findViewById(R.id.txtKesehatan);
        imgKesehatan = findViewById(R.id.imgKesehatan);

        // Pasang onClick untuk tiap CardView
        cardPonpes.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, PonpesActivity.class);
            startActivity(intent);
        });
        cardSantri.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, DataSantriActivity.class);
            intent.putExtra("login_key", loginKey);
            intent.putExtra("login_value", loginValue);
            startActivity(intent);
        });


        cardWaliSantri.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, DataWaliSantriActivity.class);
            intent.putExtra("login_key", loginKey);
            intent.putExtra("login_value", loginValue);
            startActivity(intent);
        });

        cardKegiatan.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, KegiatanSantriActivity.class);
            startActivity(intent);
        });

        cardPrestasi.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, PrestasiSantriActivity.class);
            intent.putExtra("login_key", loginKey);
            intent.putExtra("login_value", loginValue);
            startActivity(intent);
        });

        cardPelanggaran.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, PelanggaranSantriActivity.class);
            intent.putExtra("login_key", loginKey);
            intent.putExtra("login_value", loginValue);
            startActivity(intent);
        });

        cardSPP.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, InformasiSPPActivity.class);
            intent.putExtra("login_key", loginKey);
            intent.putExtra("login_value", loginValue);
            startActivity(intent);
        });

        cardBerita.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, BeritaActivity.class);
            startActivity(intent);
        });

        ImageButton btnChat = findViewById(R.id.btnChat);
        btnChat.setOnClickListener(v -> {
            Intent intent = new Intent(HomeActivity.this, ChatActivity.class);
            intent.putExtra("id_wali_santri", String.valueOf(idWaliSantri));
            startActivity(intent);
        });

        ImageButton btnLogout = findViewById(R.id.btnLogout);

        btnLogout.setOnClickListener(v -> {
            new AlertDialog.Builder(HomeActivity.this)
                    .setTitle("Konfirmasi Logout")
                    .setMessage("Apakah Anda yakin ingin keluar?")
                    .setPositiveButton("Iya", (dialog, which) -> {
                        // Hapus sesi login (jika pakai SharedPreferences)
                        SharedPreferences logoutPrefs = getSharedPreferences("login", MODE_PRIVATE);
                        logoutPrefs.edit().clear().apply();

                        // Arahkan ke halaman login
                        Intent intent = new Intent(HomeActivity.this, MainActivity.class);
                        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        startActivity(intent);
                        finish();
                    })
                    .setNegativeButton("Tidak", (dialog, which) -> {
                        dialog.dismiss(); // Tutup dialog
                    })
                    .show();
        });

        loadDataSantri();
    }

    private void loadDataSantri() {
        SharedPreferences preferences = getSharedPreferences("santri", MODE_PRIVATE);
        String kondisiKesehatan = preferences.getString("kondisi_kesehatan", "Tidak Diketahui");

        // Log.d("Kesehatan", "Kondisi: " + kondisiKesehatan);
        txtKesehatan.setText(kondisiKesehatan);

        if (kondisiKesehatan.equalsIgnoreCase("Dalam Kondisi Sehat")) {
            imgKesehatan.setImageResource(R.drawable.sehat);
        } else if (kondisiKesehatan.equalsIgnoreCase("Dalam Kondisi Sakit")) {
            imgKesehatan.setImageResource(R.drawable.sakit);
        } else {
            txtKesehatan.setText("Kondisi Tidak Diketahui");
            imgKesehatan.setImageResource(R.drawable.ic_unknown);
        }
    }

}
