package com.cool.store.service;

import com.cool.store.request.OpenAreaRequest;
import com.cool.store.vo.OpenAreaTreeVO;
import com.cool.store.vo.OpenAreaVO;
import com.cool.store.vo.OpenProvinceVO;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * @Author suzhuhong
 * @Date 2024/3/13 22:11
 * @Version 1.0
 */
public interface OpenAreaService {


    /**
     * 根据关键字搜索
     * @param keyword
     * @return
     */
    List<OpenAreaTreeVO> queryByKeyword(String keyword,String areaStatus,Boolean flag);

    List<OpenAreaTreeVO> searchOpenArea(String keyword, Boolean applyFlag,Boolean flag);


    /**
     * 查询所有的开放区域 城市树
     * @param keyword
     * @param flag
     * @return
     */
    List<OpenAreaTreeVO> queryAllOpenAreaByKeyword(String keyword,Boolean applyFlag,Boolean flag);


    /**
     * 查询字列表
     * @param parentId
     * @return
     */
    List<OpenAreaVO> getChildrenList(Long parentId);

    /**
     *
     * @param userId
     * @param openAreaRequest
     * @return
     */
    Boolean batchUpdate(String userId, OpenAreaRequest openAreaRequest);


    PageInfo<OpenAreaVO> queryKeyOpenAreaList(Integer pageSize, Integer pageNumber,String keyWord,Integer status);


    /**
     * 可加盟省份
     * @param pageSize
     * @param pageNumber
     * @return
     */
    PageInfo<OpenAreaVO> franchisableProvinces(Integer pageSize, Integer pageNumber);

    /**
     * 删除重点城市 将重点城市状态改为open
     * @param id
     * @return
     */
    Boolean deleteKeyCity(Long id);

    /**
     * 启用 or  禁用
     * @param id
     * @param keyOpenStatus
     * @return
     */
    Boolean updateKeyCityStatus(Long id,Integer keyOpenStatus);


    /**
     * V1.4
     * 意向区域添加不限
     * 每个市下面添加一个不限
     */
    Boolean addOpenArea();


}
