
package com.tmerclub.cloud.multishop.service;

import com.tmerclub.cloud.api.multishop.vo.ShopDetailVO;
import com.tmerclub.cloud.multishop.dto.ShopCompanyDTO;
import com.tmerclub.cloud.multishop.model.ShopCompany;
import com.tmerclub.cloud.multishop.vo.ShopCompanyVO;

/**
 * @Author lth
 * @Date 2021/4/25 15:44
 */
public interface ShopCompanyService {
    /**
     * 根据店铺id更新店铺工商信息
     * @param shopCompany
     * @param shopId
     * @param temp 0代表通过审核，1代表平台修改
     */
    void updateByShopId(ShopCompany shopCompany, Long shopId, Integer temp);

    /**
     * 平台更新商家工商信息
     * @param shopCompany
     * @param shopId
     */
    void platformUpdateShopCompany(ShopCompany shopCompany, Long shopId);

    /**
     * 根据供应商工商信息id获取供应商工商信息
     *
     * @param shopCompanyId 店铺工商信息id
     * @return 供应商工商信息
     */
    ShopCompanyVO getById(Long shopCompanyId);

    /**
     * 根据店铺id获取店铺工商信息
     * @param shopId
     * @param status
     * @return
     */
    ShopCompanyVO getShopCompanyByShopIdAndStatus(Long shopId, Integer status);

    /**
     * 保存店铺工商信息
     * @param shopCompany
     * @param isCreate 校验店铺工商信息，true代表首次新增时校验信息
     */
    void save(ShopCompany shopCompany, boolean isCreate);

    /**
     * 更新店铺工商信息
     * @param shopCompany 店铺工商信息
     */
    void update(ShopCompany shopCompany);

    /**
     * 检查统一信息码是否已经存在
     * @param creditCode
     * @param shopId
     * @return
     */
    Boolean checkCreditCode(String creditCode, Long shopId);

    /**
     * 根据店铺id和审核状态删除店铺工商信息
     * @param shopId
     * @param status 审核状态
     * @return
     */
    void deleteByShopIdAndStatus(Long shopId, Integer status);

    /**
     * 根据店铺id更改店铺工商信息状态
     * @param shopId
     * @param status
     * @param dbStatus
     */
    void batchUpdateStatus(Long shopId, Integer status, Integer dbStatus);

    /**
     * 校验店铺工商信息，isCreate为true代表校验新增时的信息，false代表校验更新时的信息
     * @param shopCompany
     * @param isCreate
     * @param temp 0代表通过审核，1代表平台修改
     */
    void checkInfo(ShopCompany shopCompany, Boolean isCreate, Integer temp);


    /**
     * 根据店铺工商id修改信息
     * @param shopCompany 店铺工商信息
     */
    void updateById(ShopCompany shopCompany);

    /**
     * 影印件采集
     * @param shopCompany
     * @param shopId
     * @return
     */
    String idCardCollect(ShopCompanyVO shopCompany, Long shopId);

    /**
     * 重新单独上传影印件
     * @param shopCompanyDTO
     * @param shopDetailVO
     * @param status
     * @return
     */
    String uploadIdCard(ShopCompanyDTO shopCompanyDTO, ShopDetailVO shopDetailVO, Integer status);

    /**
     * 更新正常的商家工商信息为待审核
     */
    void updateStatusToWaitAudit();
}
