package com.lesingle.creation.service;

import com.lesingle.creation.dto.reviewrule.*;
import com.lesingle.creation.vo.reviewrule.ReviewRuleVO;

import java.util.List;

/**
 * 竞赛评审规则服务接口
 */
public interface ContestReviewRuleService {

    /**
     * 创建评审规则
     * @param dto 创建评审规则请求
     * @param tenantId 租户 ID
     * @param creatorId 创建人 ID
     * @return 评审规则详情
     */
    ReviewRuleVO create(CreateReviewRuleDTO dto, Long tenantId, Long creatorId);

    /**
     * 删除评审规则
     * @param id 规则 ID
     */
    void delete(Long id);

    /**
     * 获取评审规则详情（含维度）
     * @param id 规则 ID
     * @return 评审规则详情
     */
    ReviewRuleVO getDetail(Long id);

    /**
     * 查询评审规则列表
     * @param tenantId 租户 ID
     * @return 评审规则列表
     */
    List<ReviewRuleVO> list(Long tenantId);

    /**
     * 查询可选的评审规则列表（仅返回有效规则）
     * @param tenantId 租户 ID
     * @return 评审规则列表
     */
    List<ReviewRuleVO> listForSelect(Long tenantId);

    /**
     * 添加评审维度
     * @param dto 创建评审维度请求
     * @return 评审规则详情
     */
    ReviewRuleVO addDimension(CreateReviewDimensionDTO dto);

    /**
     * 删除评审维度
     * @param id 维度 ID
     */
    void deleteDimension(Long id);
}
