package com.zg.project.wisdom.service;

import org.springframework.web.multipart.MultipartFile;

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

/**
 * 【照片上传服务接口】
 * - 定义：多图落盘 + URL入库 的能力
 */
public interface PhotoService {

    /**
     * 多图上传并落库，返回每张图片的可访问URL
     *
     * @param files        图片文件列表（必传）
     * @param photoType    照片业务类型：0=入库相关，1=出库相关（必填）
     * @param billNo       单据号（必填，用于关联）
     * @param xmMs         项目描述（出库时命名用，可为空）
     * @param documentType 单据类型（用于目录结构，不入库表）
     * @param gysMc        供应商名称（入库时命名用）
     * @return URLs 列表（每个元素都是可直接 <img src> 的地址）
     */
    List<String> uploadAndSave(List<MultipartFile> files,
                               String photoType,
                               String billNo,
                               String xmMs,
                               String documentType,
                               String gysMc);

    /**
     * 按 billNo（可选 photoType）查询照片 URL 列表
     */
    List<String> listUrlsByBill(String billNo, String photoType);

    /**
     * 按 URL 批量删除（仅数据库软删，不删除磁盘文件）
     * @param urls 待删URL列表
     * @return 结果统计：dbUpdated(数据库更新行数), total(传入数)
     */
    Map<String, Object> deleteByUrls(List<String> urls);

}
