package com.rightfromleftsw.weather.presentation.presentation.current

import com.rightfromleftsw.weather.domain.model.Location
import com.rightfromleftsw.weather.presentation.presentation.BasePresenter
import com.rightfromleftsw.weather.presentation.presentation.BaseView
import com.rightfromleftsw.weather.presentation.presentation.model.WeatherView

/**
 * Defines a contract of operations between the Browse Presenter and Browse View
 */
interface CurrentWeatherContract {

    interface View : BaseView<Presenter> {

        fun showProgress()

        fun hideProgress()

        fun showWeather(weathers: WeatherView)

        fun hideWeather()

        fun showErrorState()

        fun hideErrorState()

        fun getLocation() : Location
    }

    interface Presenter : BasePresenter {

        fun retrieveWeather()

    }

}