package com.cool.store.service;

import com.cool.store.context.LoginUserInfo;
import com.cool.store.dto.contract.ContractCallbackDTO;
import com.cool.store.entity.ShopInfoDO;
import com.cool.store.request.*;
import com.cool.store.response.AddSignFranchiseResponse;
import com.cool.store.response.ResponseResult;

public interface SignFranchiseService {
    /**
     * 提交加盟合同签约
     *
     * @param request
     * @return
     */
    ResponseResult submitSignFranchise(AddSignFranchiseRequest request, LoginUserInfo user);

    /**
     * 驳回之后从新提交数据
     * @param request
     * @param user
     * @return
     */
    Boolean reSubmitSignFranchise(AddSignFranchiseRequest request, LoginUserInfo user);

    /**
     * 装修信息修改
     */
    Boolean decorationUpdate(SignFranchiseDecorationRequest request);


    AddSignFranchiseResponse getSignFranchise(Long shopId);

    /**
     * 分部内勤审核
     * @param request
     * @return
     */
    Boolean auditApprove(AuditApproveRequest request, LoginUserInfo user);

    Boolean financeAuditApprove(AuditApproveRequest request, LoginUserInfo user);

    /**
     * 加盟合同退回后重新缴费
     * @param shopId
     * @return
     */
    Boolean rePay(Long shopId);

    /**
     * 回退到缴费阶段
     * @param shopId
     * @return
     */
    Boolean backPayFeeStage(AuditApproveRequest request, LoginUserInfo user);



    Integer dateHandle();

     HqtBuildRequest getHqtBuildRequest(Long shopId);

    /**
     * 分配运营顾问
     * @param request
     * @return
     */
    Boolean assignOperationConsultant(AssignOperationConsultantRequest request);

    ContractCallbackDTO pushContractRequest(ShopInfoDO shopInfoDO, Long shopId);
}
