package com.cool.store.service;

import com.cool.store.request.PreparationRequest;
import com.cool.store.vo.Preparation.PreparationProcessVO;
import com.cool.store.vo.Preparation.PreparationScheduleDetailVO;
import com.cool.store.vo.Preparation.PreparationScheduleVO;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

/**
 * @Author suzhuhong
 * @Date 2024/4/22 16:10
 * @Version 1.0
 */
public interface PreparationService {


    /**
     * 开业进度列表
     * @param preparationRequest
     * @return   //原先进度管理接口废弃，使用branchShopList
     */
    PageInfo<PreparationScheduleVO>  getPreparationSchedule(PreparationRequest preparationRequest);


    /**
     *  开业进度详情
     * @param shopId
     * @return
     */
    PreparationScheduleDetailVO getPreparationDetail(Long shopId);

    PreparationProcessVO getPreparationProcess(Long shopId);

    /**
     * V1.0 校验建店与加盟签约合同是否完成 并初始化后续流程数据
     * V1.1 加盟签约合同是否完成 并初始化后续流程数据
     * V1.2 新增发票回传阶段 校验发票回传是否完成 并初始化后续流程数据
     * @param shopId
     */
    void contractAndBuildStoreCompletion(Long shopId);


    /**
     * 建店完成
     * @param shopId
     */
    void sysStoreCompleted(Long shopId);

    /**
     * 营业执照和建店资料收集阶段完成后推进POS和营帐通开通
     * @param shopId 店铺id
     */
    void businessLicenseAndBuildStoreCompleted(Long shopId);
    /**
     * 证照办理+建店资料 都完成 初始化平台建店数据
     * @param shopId
     */
    void licenseCompleted(Long shopId);


    /**
     * 是否开业验收 改走的流程都已经完成 ->初始化开业验收数据
     * @param shopId
     */
    void whetherToOpenForAcceptance(Long shopId);
    /**
     * @Auther: wangshuo
     * @Date: 2024/5/9
     * @description:装修阶段刷新
     */
    Boolean  decorationFlush(Long shopId);

    //阶段完成奢shop_status=1已完成
    void updateShopStatus(Long shopId);

    /**
     * 获取店铺状态
     * @param shopIds
     * @return
     */
    Map<Long,Integer> getShopStatus(List<Long> shopIds);


    /**
     * POS进件状态修改
     * 装修完成 工商证照办理完成 建店材料收集完成
     * @param shopId
     * @return
     */
    Boolean buildStoreAndDecorationComplete(Long shopId);

    /**
     * POS 建店昨天完成
     * 选址与建店资料完成(加盟合同完成)
     * v20251024 选址与建店资料完成与营业执照完成
     * @param shopId
     * @return
     */
    Boolean selectSiteAndBuildStoreComplete(Long shopId);

    /**
     * 新管家状态修改
     * 建店完成
     * @param shopId
     * @return
     */
    Boolean buildStoreComplete(Long shopId);

    /**
     * 开始开业日期报备
     * 培训登记与开业门店验收 完成都调用 都完成 开启开始开业日期报备
     * @param shopId
     * @return
     */
    Boolean theOpeningDateIsReported(Long shopId);


}
