package com.app.simplitend.welcome.welcomecg;

import com.app.simplitend.welcome.welcomecg.mvvm.CareGiverData;
import com.app.simplitend.welcome.welcomecg.mvvm.CgForgotPwdResult;
import com.app.simplitend.welcome.welcomecg.mvvm.ConnectCgResult;

public interface WelcomeContracts {

    interface RegisterCareGiverCallback{

        void onCareGiverRegistered(CareGiverData careGiverData, String token);

        void onRegisterFailed(Throwable t, String message);

    }

    interface VerifyCgOTPCallback{
        void onOTPVerifies();

        void onVerifyOTPFailed(Throwable t, String message);
    }

    interface CgLoginCallback{
        void onLoginSuccess(CareGiverData careGiverData, String token);

        void onLogInFailed(Throwable t, String message);
    }

    interface ForgotPwdSentCodeCallback{
        void onEmailSentSuccess(CgForgotPwdResult result);

        void onEmailSentFailed(Throwable t, String message);
    }

    interface VerifyForgotOTP{
        void onOTPVerified();

        void onOTPVerificationFailed(Throwable t, String message);
    }

    interface ChangePasswordCallback{
        void onPasswordChanged(CareGiverData careGiverData);

        void onPasswordChangeFailed(Throwable t, String message);
    }

    interface ConnectCgCallback{

        void onCgConnected(ConnectCgResult result);

        void onCgConnectFailed(Throwable throwable, String message);

    }

    interface CgGetUserDataCallback{

        void onCgDataFetched(CareGiverData careGiverData);

        void onCgDataFetchFailed(Throwable t, String message);

    }

    interface ResendCgCodeCallback{

        void onCgCodeResent();

        void onCgCodeResentFailed(Throwable t, String message);

    }

}
