package com.bohuikeji.delivery.backstage.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.bohuikeji.delivery.backstage.entity.TCourierSaveDetail;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bohuikeji.frame.module.admin.base.ServiceBase;
import com.bohuikeji.frame.module.admin.entity.back.DataPage;

/**
 * <p>
 * 骑手保险记录表 服务类
 * </p>
 *
 * @author 10552
 * @since 2021-05-14
 */
public interface ITCourierSaveDetailService extends ServiceBase<TCourierSaveDetail> {

    /**
     * 判断骑手是否今日已经投保
     * @param courierId 骑手ID
     * @return 已投ture，未投false
     */
    boolean isInsure(Integer courierId);

    /**
     * 投保
     * @param courierId 骑手ID
     * @return 投保成功返回支付地址，投保失败返回null
     */
    String insure(Integer courierId);

    /**
     * 查询今日投保详情
     * @param courierId 骑手ID
     * @return 无记录返回null,其他正常返回实体
     */
    TCourierSaveDetail getInsurance(Integer courierId);

    /**
     * 分页查询我的投保记录
     * @param courierId 骑手ID
     * @param page 分页查询条件
     * @return 返回
     */
    IPage<TCourierSaveDetail> pageInsurance(Integer courierId, DataPage<TCourierSaveDetail> page);

    /**
     * 投保支付成功处理
     * @param saveDetail 需要更新的待支付保单
     * @param policyInfo 保单核查接口返回的结果
     * @return
     */
    TCourierSaveDetail insureSuccess(TCourierSaveDetail saveDetail,JSONObject policyInfo);

}
