package shop.alien.storeplatform.service;


import shop.alien.entity.second.vo.StoreImgDTO;
import shop.alien.entity.store.StoreImg;
import shop.alien.entity.store.vo.StoreImgVo;
import shop.alien.entity.storePlatform.vo.StoreLicenseHistoryDto;
import shop.alien.entity.storePlatform.vo.StoreLicenseHistoryVO;

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

public interface LicenseService {

    int uploadfoodLicence(StoreImg storeImg);

    List<StoreImg> getbusinessLicenseList (Integer id);

    List<StoreImgDTO> getEntertainmentLicenseList (Integer id);

    List<StoreImgDTO> getContractList (Integer id);

    List<StoreImgDTO> getFoodLicenceList (Integer id);

    /**
     * 根据商户ID查询证照历史记录列表（带格式化日期）
     *
     * @param storeId 商户ID
     * @return 证照历史记录VO列表
     */
    List<StoreLicenseHistoryDto> queryLicenceByStatusList (Integer storeId);

    /**
     * 店铺续签合同
     *
     */
    int uploadRenewalContract(List<StoreImg> storeImgList);


    /**
     * 获取店铺食品经营许可证状态以及店铺状态为审核中合同图片list
     * @param id
     * @return
     */
    Map<String,Object> getStoreFoodLicenceStatus(int id);


    /**
     * 获取店铺续签合同状态以及店铺状态为审核中合同图片list
     *
     */
    Map<String,Object> getStoreContractStatus(int id);


    /**
     * 根据商户ID查询合同历史记录列表（按时间分组）
     * <p>
     * 将数据按照创建时间进行分组，相同时间的数据存储到 licenseList 中
     * 返回按时间去重后的列表，每个元素包含该时间下的所有记录
     * 排序规则：时间倒序（最新的在前），同一时间内ID升序
     * </p>
     *
     * @param storeId 商户ID
     * @return 按时间分组且已排序的证照历史记录列表
     */
    List<StoreLicenseHistoryDto> queryContractByStatusList (Integer storeId);

    int uploadEntertainmentLicence(StoreImg storeImg);

    /**
     * 根据商户ID查询证照历史记录列表（带格式化日期）
     *
     * @param storeId 商户ID
     * @return 证照历史记录VO列表
     */
    List<StoreLicenseHistoryDto> queryEntertainmentByStatusList (Integer storeId);

    /**
     * 获取店铺食品经营许可证状态以及店铺状态为审核中合同图片list
     * @param id
     * @return
     */
    Map<String,Object> getStoreEntertainmentStatus(int id);
}



