package com.sqx.modules.address.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.sqx.common.utils.PageUtils;
import com.sqx.modules.address.dto.AddressAddDTO;
import com.sqx.modules.address.dto.InsideAddressDTO;
import com.sqx.modules.address.entity.InsideAddress;
import com.sqx.modules.address.query.InsideAddressQuery;
import com.sqx.modules.address.vo.InsideAddressShortVO;
import com.sqx.modules.address.vo.InsideAddressVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.text.ParseException;
import java.util.List;

/**
 * @author codingliang
 * @date 2025-09-13
 */
public interface InsideAddressService extends IService<InsideAddress> {

    /**
     * 分页查询
     * @param query 分页查询参数
     * @return 分页数据
     */
    PageUtils pages(InsideAddressQuery query);

    /**
     * 新增内部地址
     * @param insideAddressDTO 内部地址
     */
    void addInsideAddress(InsideAddressDTO insideAddressDTO);

    /**
     * 更新内部地址
     * @param insideAddressDTO 内部地址
     */
    void updateInsideAddress(InsideAddressDTO insideAddressDTO);

    /**
     * 删除内部地址
     * @param ids 内部地址id列表
     */
    void deleteByIds(List<Long> ids);

    /**
     * 根据站点id查询内部地址列表 (精简信息)
     * @param stationId 站点id
     * @return 内部地址列表(精简信息)
     */
    List<InsideAddress> listByStationId(Long stationId);

    /**
     * 导出内部地址列表
     * @param query 导出查询参数
     */
    void exportData(InsideAddressQuery query);

    List<InsideAddressVO> exportShippingAddress(InsideAddressQuery query);
    /**
     * 导入内部地址列表
     * @param file 导入文件
     */
    void importData(MultipartFile file)throws IOException, ParseException;

}
