package jnpf.culture.service;

import jnpf.base.service.SuperService;
import jnpf.entity.culture.CultureClockIn;
import jnpf.model.culture.vo.CultureClockInVo;
import jnpf.model.culture.vo.RecordListVo;
import jnpf.model.culture.vo.YearDataVo;
import org.apache.commons.lang3.tuple.MutablePair;

import java.awt.image.BufferedImage;

/**
 * 文化打卡服务
 *
 * @author yanwenfu
 * @create 2025-12-23
 */
public interface CultureClockInService extends SuperService<CultureClockIn> {

    /**
     * 打卡分享 - 获取随机图片
     * @param lastCombo 上次组合
     * @param requestUrl 请求地址
     * @return org.apache.commons.lang3.tuple.MutablePair<java.lang.String,java.awt.image.BufferedImage>
     */
    MutablePair<String, BufferedImage> getRandomPicPreview(String lastCombo, String requestUrl) throws Exception;

    /**
     * 打卡分享 - 打卡
     * @param currentCombo 当前组合
     * @param requestUrl 请求地址
     * @return jnpf.model.culture.vo.CultureClockInVo
     */
    CultureClockInVo getCultureClockInPic(String currentCombo, String requestUrl) throws Exception;

    /**
     * 打卡动态 - 打卡记录列表
     * @param cursorDate 游标日期(yyyy-MM-dd)[首次不传]
     * @param limitNum 返回有数据的天数
     * @return jnpf.model.culture.vo.RecordListVo
     */
    RecordListVo getRecordList(String cursorDate, Integer limitNum);

    /**
     * 打卡日历
     * @param year 年
     * @return jnpf.model.culture.vo.YearDataVo
     */
    YearDataVo getYearData(Integer year);
}
