package com.dora.service;

import com.dora.dto.PlazaWorkReportDto;

/**
 * 广场作品投诉服务接口
 * 
 * @author 1818AI
 * @since 2025-11-14
 */
public interface PlazaWorkReportService {
    
    /**
     * 提交投诉
     * 
     * @param userId 投诉人用户ID
     * @param request 投诉请求
     * @return 投诉响应
     */
    PlazaWorkReportDto.ReportResponse submitReport(Long userId, PlazaWorkReportDto.SubmitReportRequest request);
    
    /**
     * 查询用户的投诉列表
     * 
     * @param userId 用户ID
     * @param page 页码
     * @param size 每页数量
     * @return 投诉列表响应
     */
    PlazaWorkReportDto.ReportListResponse getMyReports(Long userId, Integer page, Integer size);
    
    /**
     * 管理员查询投诉列表
     * 
     * @param request 查询请求
     * @return 投诉列表响应
     */
    PlazaWorkReportDto.AdminReportListResponse getAdminReportList(PlazaWorkReportDto.AdminReportQueryRequest request);
    
    /**
     * 管理员审核投诉
     * 
     * @param adminId 管理员ID
     * @param adminName 管理员名称
     * @param request 审核请求
     * @return 是否成功
     */
    boolean auditReport(Long adminId, String adminName, PlazaWorkReportDto.AuditReportRequest request);
    
    /**
     * 获取待审核投诉数量
     * 
     * @return 待审核数量
     */
    Long getPendingReportCount();
}

