package chats.domain.usecase import chats.data.remote.api.ChatApi import chats.data.remote.api.FileUploadResponse import okhttp3.MediaType.Companion.toMediaTypeOrNull import okhttp3.MultipartBody import okhttp3.RequestBody.Companion.asRequestBody import java.io.File import javax.inject.Inject class UploadMediaUseCase @Inject constructor( private val api: ChatApi ) { suspend operator fun invoke(file: File): Result { return try { val requestFile = file.asRequestBody("image/*".toMediaTypeOrNull()) val body = MultipartBody.Part.createFormData("file", file.name, requestFile) val response = api.uploadFile(body) Result.success(response) } catch (e: Exception) { Result.failure(e) } } }