package com.example.doctor.Patients.Reports

import android.annotation.SuppressLint
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.example.doctor.Patients.Reports.Edit.EditSportModel
import com.example.doctor.Patients.Reports.Edit.EditSportNoAdapter
import com.example.doctor.R
import com.example.doctor.databinding.ItemQbaBinding
import com.example.doctor.databinding.ItemSportCourseBinding


class CoursesAdapter(val listener_cours: CoursesAdapter.Listener) : ListAdapter<SportCoursModel, CoursesAdapter.Holder>(Comparator()) {
    class Holder(view: View,val listener_cours: CoursesAdapter.Listener) :
        RecyclerView.ViewHolder(view) {

        val binding = ItemSportCourseBinding.bind(view)

        var itemTemp: SportCoursModel? =
            null//Глобальная переменная для нашего item, чтобы можно было передать данные для нажатия

        //init - дает возможность внутри адаптера обращаться к элементам экрана
        init {
            itemView.setOnClickListener {//Нажатие на ячейку//itemView - это весь элемент карточки из списка
                itemTemp?.let { it1 -> listener_cours.onClickCoursAdd(it1) }
            }
        }

        @SuppressLint("SuspiciousIndentation")
        fun bind(item: SportCoursModel) = with(binding) {
            txtCoursesSport.text = item.name
            if(item.visibility == 1){
                CVCours.setCardBackgroundColor(Color.parseColor("#83da83"))
            }
            else{
                CVCours.setCardBackgroundColor(Color.parseColor("#b6b6b6"))
            }

        }
    }


    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_sport_course, parent, false)
        return Holder(view,listener_cours)
    }

    override fun onBindViewHolder(holder: Holder, position: Int) {
        val view = holder.bind(getItem(position))
    }

    class Comparator : DiffUtil.ItemCallback<SportCoursModel>() {
        override fun areItemsTheSame(oldItem: SportCoursModel, newItem: SportCoursModel): Boolean {
            return oldItem.id == newItem.id
        }

        override fun areContentsTheSame(oldItem: SportCoursModel, newItem: SportCoursModel): Boolean {
            return oldItem == newItem
        }
    }

    //Интерфейс нажатия на кнопку удалить товар из корзины
    interface Listener {
        fun onClickCoursAdd(item: SportCoursModel)
    }

}




