package com.ycwl.basic.puzzle.mapper;

import com.ycwl.basic.model.pc.puzzle.entity.MemberPuzzleEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 会员拼图关联Mapper接口
 */
@Mapper
public interface MemberPuzzleMapper {

    /**
     * 添加关联记录
     */
    int addRelation(MemberPuzzleEntity entity);

    /**
     * 批量添加关联记录
     */
    int addRelations(@Param("list") List<MemberPuzzleEntity> list);

    /**
     * 根据人脸ID查询关联列表
     */
    List<MemberPuzzleEntity> listByFaceId(@Param("faceId") Long faceId);

    /**
     * 根据人脸ID统计免费数量
     */
    int countFreeByFaceId(@Param("faceId") Long faceId);

    /**
     * 更新关联记录（购买状态、订单ID等）
     */
    int updateRelation(MemberPuzzleEntity entity);

    /**
     * 批量标记为免费
     */
    int freeRelations(@Param("ids") List<Long> ids);

    /**
     * 根据人脸ID和记录ID查询
     */
    MemberPuzzleEntity getByFaceAndRecord(@Param("faceId") Long faceId, @Param("recordId") Long recordId);

    /**
     * 查询指定时间范围内生成且未购买的免费拼图记录
     */
    List<MemberPuzzleEntity> listFreeUnpurchased(@Param("startTime") java.util.Date startTime, @Param("endTime") java.util.Date endTime);
}
