package com.dora.service;

import com.dora.dto.WorkflowLikeDto;

/**
 * 工作流点赞服务接口
 */
public interface WorkflowLikeService {

    /**
     * 点赞/取消点赞工作流
     * @param userId 用户ID
     * @param workflowId 工作流ID
     * @return 点赞响应
     */
    WorkflowLikeDto.LikeResponse toggleLike(Long userId, Long workflowId);

    /**
     * 检查用户是否已点赞工作流
     * @param userId 用户ID
     * @param workflowId 工作流ID
     * @return 是否已点赞
     */
    Boolean isLiked(Long userId, Long workflowId);

    /**
     * 获取工作流点赞数量
     * @param workflowId 工作流ID
     * @return 点赞数量
     */
    Integer getLikeCount(Long workflowId);

    /**
     * 获取用户点赞的工作流列表
     * @param userId 用户ID
     * @param page 页码
     * @param size 每页大小
     * @return 点赞列表响应
     */
    WorkflowLikeDto.LikeListResponse getUserLikes(Long userId, Integer page, Integer size);

    /**
     * 获取用户工作流点赞统计
     * @param userId 用户ID
     * @return 点赞统计响应
     */
    WorkflowLikeDto.LikeStatsResponse getUserLikeStats(Long userId);
} 