package com.ycwl.basic.service.mobile;

import com.ycwl.basic.model.mobile.goods.*;
import com.ycwl.basic.utils.ApiResponse;

import java.util.List;

/**
 * @Author：longbinbin
 * @Date：2024/12/5 15:03
 */
public interface GoodsService {

    /**
     * 查询源素材商品列表
     *
     * @param query
     * @return
     */
    List<GoodsDetailVO> sourceGoodsList(GoodsReqQuery query);

    /**
     * @param userId  商品（vlog）id
     * @param videoId
     * @return
     */
    ApiResponse<VideoGoodsDetailVO> videoGoodsDetail(Long userId, Long videoId);

    /**
     * 查询当前用户的成片合成任务状态
     * @param userId
     * @return
     */
    VideoTaskStatusVO getAllTaskStatus(Long userId);
    VideoTaskStatusVO getTaskStatusByFaceId(Long faceId);
    VideoTaskStatusVO getTaskStatusByTemplateId(Long faceId, Long templateId);
    VideoTaskStatusVO getTaskStatusByScenicId(Long userId, Long scenicId);

    ApiResponse<GoodsDetailVO> sourceGoodsInfo(Long sourceId);

    List<GoodsUrlVO> sourceGoodsListDownload(GoodsReqQuery query);

    Integer sourceGoodsCount(GoodsReqQuery query);

    /**
     * 检查视频是否可更新
     * @param videoId 视频ID
     * @return 视频更新检查结果
     */
    VideoUpdateCheckVO checkVideoUpdate(Long videoId);

    ApiResponse<List<GoodsPageVO>> listGoodsByFaceIdList(List<Long> faceIds, Integer isBuy, Long scenicId);
}
