package org.xyzh.api.usercenter.browse;

import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.dto.usercenter.TbUserBrowseRecord;

import java.util.List;

/**
 * @description 用户浏览记录服务接口
 * @filename UserBrowseRecordService.java
 * @author yslg
 * @copyright xyzh
 * @since 2025-10-15
 */
public interface UserBrowseRecordService {

    /**
     * @description 添加浏览记录
     * @param browseRecord 浏览记录
     * @return ResultDomain<TbUserBrowseRecord> 添加结果
     * @author yslg
     * @since 2025-10-15
     */
    ResultDomain<TbUserBrowseRecord> addBrowseRecord(TbUserBrowseRecord browseRecord);

    /**
     * @description 获取用户浏览记录
     * @param userID 用户ID
     * @param browseType 浏览类型（可选）
     * @param limit 限制数量（可选）
     * @return ResultDomain<TbUserBrowseRecord> 浏览记录列表
     * @author yslg
     * @since 2025-10-15
     */
    ResultDomain<TbUserBrowseRecord> getUserBrowseRecords(String userID, Integer browseType, Integer limit);

    /**
     * @description 删除浏览记录
     * @param recordID 记录ID
     * @return ResultDomain<Boolean> 删除结果
     * @author yslg
     * @since 2025-10-15
     */
    ResultDomain<Boolean> deleteBrowseRecord(String recordID);

    /**
     * @description 清空用户浏览记录
     * @param userID 用户ID
     * @param browseType 浏览类型（可选）
     * @return ResultDomain<Boolean> 清空结果
     * @author yslg
     * @since 2025-10-15
     */
    ResultDomain<Boolean> clearUserBrowseRecords(String userID, Integer browseType);

    /**
     * @description 获取浏览统计
     * @param userID 用户ID
     * @param browseType 浏览类型（可选）
     * @return ResultDomain<Integer> 浏览次数
     * @author yslg
     * @since 2025-10-15
     */
    ResultDomain<Integer> getBrowseCount(String userID, Integer browseType);
}
