package org.jeecg.modules.service;

import org.jeecg.common.api.vo.Result;
import org.jeecg.modules.bean.OrderPageBean;
import org.jeecg.modules.msgEvaluate.entity.MsgEvaluate;
import org.jeecg.modules.postBean.*;
import org.springframework.web.bind.annotation.RequestHeader;

public interface OrderCreateVipService {


    //用户下单流程接口

    //第一步：用户下单
    Result<?> createOrder(String token, OrderCreateBean bean);

    //根据订单标识查询订单详情的方法
    Result<?> getOrderDetail(String token,String id);

    //获取当前技师的排期
    Result<?> getVipTenOrderList(String token, String tenId,String name);

    //第二步：用户支付
    Result<?> payOrder(String token, OrderPayBean bean);

    //立即支付
    Result<?> createWxPayOrder(String token, OrderPayBean bean);

    //用户取消订单
    Result<?> cancelVipOrder(String token, String orderId);

    //获取手机验证码- 不需要token
    Result<?> getCode(String phone);

    //技师登录
    Result<?> wxTechnicianLogin(String phone, String code);

    //技师根据标识查询自己的订单 - 技师端
    Result<?> getOrderList(String token, OrderPageBean pageBean);

    //第三步：技师确认接单
    Result<?> confirmOrder(String token, String orderId);

    //第四步：技师出发
    Result<?> startOrder(String token, String orderId);

    //第五步：技师到达
    Result<?> arriveOrder(String token, String orderId,String arrivalPicture);

    //第六步：技师开始服务
    Result<?> startService(String token, String orderId);

    //第七步：技师结束服务
    Result<?> endService(String token, String orderId, String endPicture);

    //第八步：用户评价
    Result<?> evaluateOrder(String token, MsgEvaluate bean);

    //收藏技师
    Result<?> collectVipTechnician(String token, String tenId);

    //收藏列表
    Result<?> getVipCollectList(String token, CollectPageBean bean);

    //分享生成签名
    Result<?> getVipShareSign(String url);



    //取消收藏接口
    Result<?> cancelCollect(String token, String tenId);


    //技师端-获取技师个人信息
    Result<?> giveTenInfo(String token);

    //技师端-资料上传
    Result<?> uploadTenInfo(String token, TenInfoBean bean);

    //技师端-提现-充值
    Result<?> giveWithdrawal(String token, WithdrawalBean bean);

    //技师顿-上下线
    Result<?> online(String token, OnlineBean bean);

    //公告
    Result<?> getTenNotice(String token);

    //获取首页订单
    Result<?> getTenOrderList(String token);

    //首页统计数据
    Result<?> getTenOrderStatistics(String token);

    //获取订单页订单
    Result<?> getTenOrderPageList(String token ,OrderPageBean pageBean);

    //支付回调
    Object createCzNotify(String requestBody);


    //根据用户手机号码验证码更换手机号码绑定信息
    Result<?> changePhone(String token, String phone, String code);


    //认证
    Result<?> tenRealName(String token, TenRealNameBean bean);


    //获取实名认证信息
    Result<?> getTenRealName(String token);

    //修改技师相册
    Result<?> uploadTenImg(String token,String file);


    //获取我推荐的技师记录
    Result<?> getTenFans(String token);



}
