package com.app.simplitend.welcome.welcomepatient.mvvm;

import com.app.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.Contact;
import com.app.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.models.ContactListResponse;
import com.app.simplitend.welcome.welcomepatient.mvvm.models.OTPSentResponse;
import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData;

import java.util.List;

public interface WelcomeContracts {

    interface RegisterPatientContract{

        void onResponse(PatientData patientResult, String token);

        void onFailure(Throwable t, String message, int error_code);
    }

    interface ContactListContracts{

        void onResponse(List<ContactListResponse> contactList);

        void onFailure(Throwable t, String message, int error_code);

    }

    interface CreateContactInterface{

        void onContactCreated(Contact contact);

        void onContactCreateFailed(Throwable t, String message, int error_code);

    }

    interface DeleteContactInterface {

        void onContactDelete();

        void onContactDeleteFailed();

    }

    interface UpdateContactContracts {

        void onContactUpdated();

        void onUpdateFailed();

    }

    interface VerifyEmailCallBack {

        void onEmailVerified(boolean exists, String message);

        void onVerificationFailed();

    }

    interface SendOTPToEmailCallback{
        void onOTPSent(OTPSentResponse otpSentResponse);

        void onOTPSentFailed(Throwable t, String message);
    }

    interface VerifyOTPCallback{
        void onOTPVerified();

        void onOTPVerificationFailed(Throwable t, String message);
    }

    interface UpdatePinCallback{
        void onPinUpdated(PatientData patientData);

        void onPinUpdateFailed(Throwable t, String message);
    }

}
