package com.kexue.skills.mapper;

import com.kexue.skills.entity.AccountFrozen;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 账户冻结单Mapper
 *
 * @author 系统生成
 * @since 2026-04-11
 */
@Mapper
public interface AccountFrozenMapper {

    /**
     * 根据ID查询冻结单
     * @param frozenId 冻结单ID
     * @return 冻结单信息
     */
    AccountFrozen selectByPrimaryKey(String frozenId);

    /**
     * 插入冻结单
     * @param accountFrozen 冻结单信息
     * @return 影响行数
     */
    int insert(AccountFrozen accountFrozen);

    /**
     * 更新冻结单
     * @param accountFrozen 冻结单信息
     * @return 影响行数
     */
    int updateByPrimaryKey(AccountFrozen accountFrozen);

    /**
     * 根据会话ID查询冻结单
     * @param sessionId 会话ID
     * @return 冻结单信息
     */
    AccountFrozen selectBySessionId(String sessionId);

    /**
     * 根据用户ID和状态查询冻结单
     * @param userId 用户ID
     * @param status 状态
     * @return 冻结单列表
     */
    List<AccountFrozen> selectByUserIdAndStatus(@Param("userId") Long userId, @Param("status") String status);

    /**
     * 查询过期的冻结单
     * @param currentTime 当前时间
     * @return 冻结单列表
     */
    List<AccountFrozen> selectExpiredFrozen(Date currentTime);

}
