package com.proyek.akhir.kodel.ui.user.dashboard

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.proyek.akhir.kodel.R
import com.proyek.akhir.kodel.data.local.Penunggak
import com.proyek.akhir.kodel.data.response.UtangItem
import kotlinx.android.synthetic.main.item_penunggak.view.*
import java.text.SimpleDateFormat
import java.util.*
import java.util.concurrent.TimeUnit

class PenunggakDashboardAdapter(private val listPenunggak: List<UtangItem>) :
    RecyclerView.Adapter<PenunggakDashboardAdapter.PenunggakViewHolder>() {

    inner class PenunggakViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        fun bind(penunggak: UtangItem) {
            with(itemView) {
                Glide.with(itemView.context)
                    .load(penunggak.fotoDiriAnggota)
                    .into(imgPenunggak)
                namePenunggak.text = penunggak.namaAnggota

                val inputFormatter = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US)
                val datePinjamApi = inputFormatter.parse(penunggak.tglPinjam)!!
                val millionSeconds = datePinjamApi.time.minus(Calendar.getInstance().timeInMillis)

                hariPenunggak.text = context.getString(
                    R.string.menunggak_x_hari,
                    millionSeconds.let { TimeUnit.MILLISECONDS.toDays(it).toString() })
                deletePenunggakBeranda.visibility = View.INVISIBLE
            }
        }
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PenunggakViewHolder =
        PenunggakViewHolder(
            LayoutInflater.from(parent.context).inflate(
                R.layout.item_penunggak, parent, false
            )
        )

    override fun getItemCount(): Int {
        return if (listPenunggak.size > 5) {
            3
        } else {
            listPenunggak.size
        }
    }

    override fun onBindViewHolder(holder: PenunggakViewHolder, position: Int) {
        holder.bind(listPenunggak[position])
    }
}