package com.dora.service;

import com.dora.dto.VodDto;

/**
 * 视频点播服务接口
 */
public interface VodService {

    /**
     * 获取视频上传凭证
     * @param request 请求参数
     * @return 上传凭证响应
     */
    VodDto.UploadAuthResponse getUploadAuth(VodDto.GetUploadAuthRequest request);

    /**
     * 刷新视频上传凭证
     * @param request 请求参数
     * @return 上传凭证响应
     */
    VodDto.UploadAuthResponse refreshUploadAuth(VodDto.RefreshUploadAuthRequest request);

    /**
     * 获取视频播放凭证
     * @param request 请求参数
     * @return 播放凭证响应
     */
    VodDto.PlayAuthResponse getPlayAuth(VodDto.GetPlayAuthRequest request);

    /**
     * 获取视频信息
     * @param request 请求参数
     * @return 视频信息响应
     */
    VodDto.VideoInfoResponse getVideoInfo(VodDto.GetVideoInfoRequest request);

    /**
     * 获取音视频播放地址
     * @param request 请求参数
     * @param userId 用户ID
     * @return 播放地址响应
     */
    VodDto.PlayInfoResponse getPlayInfo(VodDto.GetPlayInfoRequest request, Long userId);

    /**
     * 获取音视频播放凭证
     * @param request 请求参数
     * @param userId 用户ID
     * @return 播放凭证响应
     */
    VodDto.VideoPlayAuthResponse getVideoPlayAuth(VodDto.GetVideoPlayAuthRequest request, Long userId);

    /**
     * 获取视频播放凭证并增加播放次数
     * @param request 请求参数
     * @param userId 用户ID
     * @return 播放凭证并增加播放次数响应
     */
    VodDto.PlayAuthWithViewCountResponse getPlayAuthWithViewCount(VodDto.GetPlayAuthWithViewCountRequest request, Long userId);
} 