package com.lesingle.creation.service;

import com.lesingle.creation.dto.result.*;
import com.lesingle.creation.vo.result.ResultVO;

import java.util.List;

/**
 * 竞赛结果服务接口
 */
public interface ContestResultService {

    /**
     * 创建竞赛结果
     * @param dto 创建竞赛结果请求
     * @param creatorId 创建人 ID
     * @return 结果详情
     */
    ResultVO create(CreateResultDTO dto, Long creatorId);

    /**
     * 更新竞赛结果
     * @param id 结果 ID
     * @param dto 更新竞赛结果请求
     * @return 结果详情
     */
    ResultVO update(Long id, CreateResultDTO dto);

    /**
     * 发布竞赛结果
     * @param id 结果 ID
     * @return 结果详情
     */
    ResultVO publish(Long id);

    /**
     * 删除竞赛结果
     * @param id 结果 ID
     */
    void delete(Long id);

    /**
     * 获取竞赛结果详情
     * @param id 结果 ID
     * @return 结果详情
     */
    ResultVO getDetail(Long id);

    /**
     * 查询活动的竞赛结果列表
     * @param contestId 活动 ID
     * @return 结果列表
     */
    List<ResultVO> listByContest(Long contestId);

    /**
     * 查询获奖结果列表
     * @param contestId 活动 ID
     * @return 获奖结果列表
     */
    List<ResultVO> listWinners(Long contestId);
}
