package com.microservices.zone.detail.service;

import com.microservices.common.core.web.page.GenericsTableDataInfo;
import com.microservices.zone.detail.domain.ZoneApplication;
import com.microservices.zone.detail.domain.vo.ZoneApplicationCreateZoneVo;
import com.microservices.zone.detail.domain.vo.ZoneApplicationSearchVo;

import java.util.List;

/**
 * 特色专区申请Service接口
 *
 * @author microservices
 * @date 2023-09-13
 */
public interface IZoneApplicationService 
{
    /**
     * 查询特色专区申请
     * 
     * @param id 特色专区申请主键
     * @return 特色专区申请
     */
    public ZoneApplication selectZoneApplicationById(Long id);

    /**
     * 查询特色专区申请列表
     * 
     * @param zoneApplication 特色专区申请
     * @return 特色专区申请集合
     */
    public List<ZoneApplication> selectZoneApplicationList(ZoneApplication zoneApplication);

    /**
     * 查询特色专区申请列表
     *
     * @param zoneApplicationSearchVo 特色专区申请搜索类
     * @return 特色专区申请集合
     */
    GenericsTableDataInfo<ZoneApplication> selectZoneApplicationListBySearchInput(ZoneApplicationSearchVo zoneApplicationSearchVo);

    /**
     * 新增特色专区申请
     * 
     * @param zoneApplication 特色专区申请
     * @return 结果
     */
    public int insertZoneApplication(ZoneApplication zoneApplication);

    /**
     * 修改特色专区申请
     * 
     * @param zoneApplication 特色专区申请
     * @return 结果
     */
    public int updateZoneApplication(ZoneApplication zoneApplication);

    /**
     * 批量删除特色专区申请
     * 
     * @param ids 需要删除的特色专区申请主键集合
     * @return 结果
     */
    public int deleteZoneApplicationByIds(Long[] ids);

    /**
     * 删除特色专区申请信息
     * 
     * @param id 特色专区申请主键
     * @return 结果
     */
    public int deleteZoneApplicationById(Long id);

    /**
     * @param id                          专区申请id
     * @param zoneApplicationCreateZoneVo 基于专区申请创建专区对象
     * @return 专区id
     */
    Long createZoneByApplication(Long id, ZoneApplicationCreateZoneVo zoneApplicationCreateZoneVo);
}
