package com.imooc.mapper;

import com.imooc.my.mapper.MyMapper;
import com.imooc.pojo.Vlog;
import com.imooc.vo.IndexVlogVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;


//@Repository
//public interface VlogMapper extends MyMapper<Vlog> {
//}
@Repository
public interface VlogMapper {
//    public List<IndexVlogVO> updateVlogStatus(@Param("paramMap") Map<String, Object> map);
    /**
     * 通用动态更新方法
     * @param primaryKey 主键字段名
     * @param idValue 主键值
     * @param updateFields 待更新的字段Map（key=字段名, value=字段值）
     * @return 影响的行数
     */
    int dynamicUpdate(
            @Param("primaryKey") String primaryKey,
            @Param("idValue") Object idValue,
            @Param("updateFields") Map<String, Object> updateFields
    );

    /**
     * Vlog表多条件动态更新
     * @param updateFields 需要更新的字段及值（Map结构）
     * @param conditions 更新条件（Map结构）
     * @return 受影响的行数
     */
    int updateVlogByConditions(
            @Param("updates") Map<String, Object> updateFields,
            @Param("conditions") Map<String, Object> conditions
    );

    /**
     * 单条插入vlog记录
     * @param vlogData 插入数据的键值对(key=列名, value=列值)
     * @return 影响的行数
     */
    int dynamicInsert(@Param("vlogData") Map<String, Object> vlogData);

    /**
     * 批量插入vlog记录
     * @param vlogList 插入数据列表(每个Map代表一行数据)
     * @return 影响的行数
     */
    int dynamicBatchInsert(@Param("vlogList") List<Map<String, Object>> vlogList);

    public List<IndexVlogVO> selectMyPublic(@Param("paramMap")Map<String, Object> map);
    public List<IndexVlogVO> getVlogDetailFromId(@Param("paramMap")Map<String, Object> map);
}