
package com.tmerclub.cloud.product.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.product.dto.WarehouseAreaDTO;
import com.tmerclub.cloud.product.model.WarehouseArea;

import java.util.List;

/**
 * 仓库项和供货城市关联信息
 *
 * @author tmerclub
 * @date 2023-11-08 11:11:44
 */
public interface WarehouseAreaService {

    /**
     * 分页获取仓库项和供货城市关联信息列表
     * @param pageDTO 分页参数
     * @return 仓库项和供货城市关联信息列表分页数据
     */
    PageVO<WarehouseArea> page(PageDTO pageDTO);

    /**
     * 根据仓库项和供货城市关联信息id获取仓库项和供货城市关联信息
     *
     * @param warehouseAreaId 仓库项和供货城市关联信息id
     * @return 仓库项和供货城市关联信息
     */
    WarehouseArea getByWarehouseAreaId(Long warehouseAreaId);

    /**
     * 保存仓库项和供货城市关联信息
     * @param warehouseArea 仓库项和供货城市关联信息
     */
    void save(WarehouseArea warehouseArea);

    /**
     * 更新仓库项和供货城市关联信息
     * @param warehouseArea 仓库项和供货城市关联信息
     */
    void update(WarehouseArea warehouseArea);

    /**
     * 根据仓库项和供货城市关联信息id删除仓库项和供货城市关联信息
     * @param warehouseAreaId 仓库项和供货城市关联信息id
     */
    void deleteById(Long warehouseAreaId);

    /**
     * 批量保存仓库和供货城市关联信息
     * @param warehouseAreaDTOList
     */
    void batchSave(List<WarehouseAreaDTO> warehouseAreaDTOList);

    /**
     * 批量删除关联信息
     * @param warehouseId
     */
    void deleteByWarehouseId(Long warehouseId);
}
