package cn.wildfire.chat.kit;

import cn.wildfire.chat.kit.conversation.patient.model.AtratmentRecord;
import cn.wildfire.chat.kit.conversation.patient.model.CertificateModel;
import cn.wildfire.chat.kit.conversation.patient.model.DoctorComment;
import cn.wildfire.chat.kit.net.BaseResultCallBack;
import cn.wildfire.chat.kit.tik.base.CommentItem;
import cn.wildfire.chat.kit.tik.base.CommentPageItem;
import cn.wildfire.chat.kit.tik.base.SubCommentPageItem;
import cn.wildfire.chat.kit.tik.ui.model.*;
import cn.wildfirechat.model.Patient;
import org.json.JSONObject;

import java.util.List;

/**
 * @author kimi
 * @description
 * @date 2020-12-29 10:36
 */


public interface ApiServiceProvider {

    void getContentByDoctorId(String doctorId, int pageNo, int pageSize, BaseResultCallBack<PageItem<ContentItem>> callback);
    void getContentByDoctorId(String doctorId, int pageNo, int pageSize, int status, BaseResultCallBack<PageItem<ContentItem>> callback);

    void getContentById(String id, BaseResultCallBack<PageItem<ContentItem>> callBack);

    void getContentBySearch(String searchText, int pageNo, int pageSize, int type, BaseResultCallBack<PageItem<ContentItem>> callBack);


    void getDiseaseBySearch(String searchText, BaseResultCallBack<DiseaseBean> callBack);

    void getDoctorBySearch(String searchText, int pageNo, int pageSize, BaseResultCallBack<DoctorPageItem> callBack);
    void getDoctorBySearch(String searchText, int pageNo, int pageSize, int departmentOne, int departmentTwo, BaseResultCallBack<DoctorPageItem> callBack);
    void getHospitalBySearch(String searchText, int pageNo, int pageSize, BaseResultCallBack<HospitalPageItem> callBack);

    void getContentsByType(int type, int pageNo, int pageSize, BaseResultCallBack<PageItem<ContentItem>> callBack);

    //评论
    void getCommentByObjectId(String objectId, BaseResultCallBack<CommentPageItem> callBack);
    void getCommentByObjectId(String objectId,int pageNo, int pageSize, BaseResultCallBack<CommentPageItem> callBack);
    void getSubCommentByParentId(String parentId, int pageNo, int pageSize, BaseResultCallBack<SubCommentPageItem> callBack);

    void addOneComment(CommentItem commentItem, BaseResultCallBack<JSONObject> callBack);

    void getPatientListByClientId(String clientId, BaseResultCallBack<List<Patient>> callBack);

    void getPatientById(String patientId, BaseResultCallBack<Patient> callBack);

    void addPatient(Patient patient, BaseResultCallBack<com.alibaba.fastjson.JSONObject> callBack);

    void modifyPatient(Patient patient, BaseResultCallBack<com.alibaba.fastjson.JSONObject> callBack);

    void modifyCommonPatientInfo(String patientId, String patientName, String patientAvatar,BaseResultCallBack<com.alibaba.fastjson.JSONObject> callBack);

    void modifyPatientBodyInfo(String patientId, String patientName, String height, String wieght,BaseResultCallBack<com.alibaba.fastjson.JSONObject> callBack);

    void certificatePatient(CertificateModel certificateModel,BaseResultCallBack<com.alibaba.fastjson.JSONObject> callBack);


    void getTreatmentRecordByPatientId(String patientId, BaseResultCallBack<List<AtratmentRecord>> callBack);

    void getDoctorRemarkByPatientId(String patientId, BaseResultCallBack<List<DoctorComment>> callBack);
}