package com.example.exvesta.Screans.Admin

import android.content.Context
import android.net.Uri
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.example.exvesta.domain.utils.Constants
import com.example.exvesta.model.Consists_wardrob
import com.example.exvesta.model.Publicthings
import com.example.exvesta.model.Things_user
import io.github.jan.supabase.postgrest.from
import io.github.jan.supabase.storage.storage
import kotlinx.coroutines.launch




class viewModelAdmin(private val context: Context): ViewModel() {



    fun deleteItem(userthing: Publicthings) {
        var response: List<Publicthings>
        response = ArrayList()
        viewModelScope.launch {

            try {
                Constants.supabase.from("Publicthings").delete {

                    filter {
                        Publicthings::id eq userthing.id
                    }
                }

            } catch (e: Exception) {
                println("Error")
                println(e.message.toString())
            }
        }

    }

    fun insertItem(season: Int, styles: Int, title: String, subtype: Int, imgUri: Uri?, article: String) {
        viewModelScope.launch {
            try {
                val imageUrl = imgUri?.let { uri ->
                    val inputStream = context.contentResolver.openInputStream(uri)
                    inputStream?.use { stream ->
                        val byteArray = stream.readBytes() // Читаем содержимое файла в массив байтов
                        val bucket = Constants.supabase.storage.from("exvesta") // Укажите имя вашего бакета

                        val fileName = uri.lastPathSegment ?: "default_image_name.jpg" // Получаем имя файла из Uri
                        val uploadResponse = bucket.upload(fileName, byteArray) // Используем имя файла
                        Log.d("UploadResponse", uploadResponse.toString())

                        // Формируем URL изображения
                        "https://vkxcxcimqqswxqxncmof.supabase.co/storage/v1/object/public/exvesta/$fileName"
                    }
                }
                // Создаем объект Things_user
                val thing = Publicthings(
                    id = null,
                    title = title,
                    id_style = styles,
                    id_subtype = subtype,
                    img = imageUrl,
                   rating = null,
                    article = article,
                    seson_id = season

                )

                // Вставка элемента в базу данных
                val insertResponse = Constants.supabase.from("Publicthings").insert(thing){
                    select()
                }





            } catch (e: Exception) {
                println("Error during insertion: ${e.message}")
            }
        }
    }



}