package com.emotion.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.emotion.common.PageResult;
import com.emotion.dto.request.UserStatsCreateRequest;
import com.emotion.dto.request.UserStatsIncrementRequest;
import com.emotion.dto.request.UserStatsPageRequest;
import com.emotion.dto.request.UserStatsUpdateValueRequest;
import com.emotion.dto.response.UserStatsResponse;
import com.emotion.entity.UserStats;

import java.util.List;

/**
 * 用户统计服务接口
 * 
 * @author huazhongmin
 * @date 2025-07-23
 */
public interface UserStatsService extends IService<UserStats> {
    
    /**
     * 分页查询用户统计响应
     */
    PageResult<UserStatsResponse> getPageWithResponse(UserStatsPageRequest request);

    /**
     * 更新用户统计值
     */
    boolean updateStatsValue(UserStatsUpdateValueRequest request);
    
    /**
     * 增加用户统计值
     */
    boolean incrementStatsValue(UserStatsIncrementRequest request);
    
    /**
     * 重新计算用户统计
     */
    boolean recalculateUserStats(String userId);
    
    /**
     * 重新计算所有用户统计
     */
    boolean recalculateAllUserStats();
    
    /**
     * 创建或更新用户统计响应
     */
    UserStatsResponse createOrUpdateUserStatsWithResponse(UserStatsCreateRequest request);

    /**
     * 删除过期的统计数据
     */
    boolean deleteExpiredStats(Integer days);
}