package com.example.wabi.domain.supabase

import com.example.wabi.models.responses.Response
import com.example.wabi.models.responses.UserResponse
import com.example.wabi.models.screens.SignUpUser
import com.example.wabi.models.supabase.Basket
import io.github.jan.supabase.gotrue.user.UserInfo

interface SupabaseService {
    suspend fun signIn(userEmail: String, userPasword: String): Response
    suspend fun signOut(): Response
    suspend fun signUp(userEmail: String, userPasword: String): Response
    suspend fun addUser(user: SignUpUser): Response
    suspend fun emailIsExists(userEmail: String): Boolean
    suspend fun uploadImageToStorage(where: String, name: String, image: ByteArray): Response
    suspend fun getCurrentUser(): UserInfo?
    suspend fun getUserData(userId: String): UserResponse

    suspend fun resetPasswordForEmail(userEmail: String): Response
    suspend fun getBasket(): List<Basket>
}
