package com.proyek.akhir.kodel.ui.user.produk.detail

import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import com.bumptech.glide.Glide
import com.proyek.akhir.kodel.R
import com.proyek.akhir.kodel.data.response.Produk
import com.proyek.akhir.kodel.data.response.ProdukItem
import com.proyek.akhir.kodel.ui.user.produk.ProdukViewModel
import com.proyek.akhir.kodel.ui.user.produk.pembayaran.PembayaranActivity
import kotlinx.android.synthetic.main.activity_detail_produk.*

class DetailProdukActivity : AppCompatActivity() {
    private val viewModelProdukDetail by lazy {
        ViewModelProvider(this).get(ProdukViewModel::class.java)
    }

    private var itemProduk = 1
    private lateinit var produkId: String
    private lateinit var produk: ProdukItem


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail_produk)

        produkId = intent.getStringExtra("idProduk")

        kurangProduk.setOnClickListener {
            itemProduk -= 1
            jumlahProduk.text = itemProduk.toString()
        }

        tambahProduk.setOnClickListener {
            itemProduk += 1
            jumlahProduk.text = itemProduk.toString()
        }

        swipeBarDetailProduk.setOnRefreshListener {
            swipeBarDetailProduk.isRefreshing = true
            showData(produkId)
            swipeBarDetailProduk.isRefreshing = false
        }

        swipeBarDetailProduk.isRefreshing = true
        showData(produkId)

        btnBeliProduk.setOnClickListener {
            val intent = Intent(this, PembayaranActivity::class.java)
            intent.putExtra("jumlahProduk", itemProduk.toString())
            intent.putExtra("itemProduk", produk)
            startActivity(intent)

        }
    }

    private fun showData(id: String) {
        viewModelProdukDetail.getProdukItem(id)
        viewModelProdukDetail.setDataItemProduk().observe(this, Observer { produk ->
            if (produk != null) {
                swipeBarDetailProduk.isRefreshing = false
                this.produk = ProdukItem(
                    produk[0].gambarProduk,
                    produk[0].hargaProduk,
                    produk[0].idProduk,
                    produk[0].namaProduk,
                    produk[0].satuanProduk
                )
                Glide.with(this)
                    .load(produk[0].gambarProduk)
                    .into(imageView3)
                textView7.text = produk[0].namaProduk
                textView8.text = getString(
                    R.string.rp_x_x,
                    produk[0].hargaProduk.toString(),
                    produk[0].satuanProduk
                )
            }
        })
    }
}
