package com.rj.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.rj.dto.CustomerPhotoPreviewResult;
import com.rj.dto.CustomerPhotoUploadResult;
import com.rj.dto.CustomerStageUpdateResult;
import com.rj.entity.CustomerManagement;
import org.springframework.web.multipart.MultipartFile;

/**
 * <p>
 * 客户管理表 服务类
 * </p>
 *
 * @author 李中华 ,spllzh
 * @since 2025-08-07
 */
public interface ICustomerManagementService extends IService<CustomerManagement> {

    /**
     * 校验客户存在后，将照片上传至 MinIO，返回访问 URL。
     */
    CustomerPhotoUploadResult uploadCustomerPhoto(String id, MultipartFile file);

    /**
     * 根据 MinIO URL 或客户 ID + 照片类型解析对象并打开输入流，供预览下载。
     *
     * @param url       与上传接口返回一致的 MinIO 访问 URL，可为空
     * @param id        客户 ID，与 photoType 联用时可空
     * @param photoType front / side / life，与 id 联用时可空
     */
    CustomerPhotoPreviewResult openCustomerPhotoPreview(String url, String id, String photoType);

    /**
     * 按客户主键更新阶段（stage）与更新时间。
     */
    CustomerStageUpdateResult updateCustomerStage(String id, String stage);
}
