namespace inutralia.ViewModels
{
    using inutralia.Models;
    using System.Threading.Tasks;


    public class DetailsNutriQuestionListViewModel : BaseNavigationViewModel
    {
        public DetailsNutriQuestionListViewModel(Conversation conversation)
        {
            Conversation = conversation;

            /*
             estado_id 1= pendiente
             estado 2= respondido por cliente
             estado 3= respondido por nutricionista
             estado 4=cerrada
             
             */

            /*solo muestro input y boton de respuesta si la consulta está "respondida por nutricionista*/

            if (Conversation.StateId == 3)
            {
                /*uso "canloadmore" porque es un variable tipo bool definida ya en MvvmHelpers, es poco intuitiva
                 ya que tendría que ser algo tal que "isvisibleInput" */
                CanLoadMore = true;
                /*Pasarle un texto explicativo del uso de las conversaciones*/
                Title = "";

            }
            else
            {
                CanLoadMore = false;
                Title = "Si estás viendo este mensaje, es que todavía no puedes responder a la consulta. Cada consulta a tu nutricionista tiene un máximo de dos mensajes por tu parte. Una vez escrito un mensaje no podrás volver a contestar hasta que tu nutricionista haya leido y contestado tu mensaje anterior. Una vez sobrepasado el límite de mensajes la consulta pasa a estado cerrado y no se podra seguir conversando. Si te quedas con más dudas tendrás que crear una consulta nueva.";
            }

            if (Conversation.Messages == null)
                Conversation.Messages = new Message[0];
        }




        public Conversation Conversation { get; private set; }



        public async Task RefreshData()
        {
            if (Conversation == null)
                return;

            IsBusy = true;

            if (await App.API.RefreshItemAsync(Conversation))
            {
                OnPropertyChanged("Conversation");

                // Cambiar título
                /*Title = Conversation.Subject;*/

            } //endif

            IsBusy = false;
        }
        public async Task saveData(string messageValue)
        {
            IsBusy = true;

            Conversation.Message = messageValue;

            await App.API.UpdateItemAsync(Conversation);

            IsBusy = false;
        }
    }
}