package com.ycwl.basic.puzzle.mapper;

import com.ycwl.basic.puzzle.entity.PuzzleTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 拼图模板Mapper接口
 *
 * @author Claude
 * @since 2025-01-17
 */
@Mapper
public interface PuzzleTemplateMapper {

    /**
     * 根据ID查询模板
     */
    PuzzleTemplateEntity getById(@Param("id") Long id);

    /**
     * 根据模板编码查询模板
     */
    PuzzleTemplateEntity getByCode(@Param("code") String code);

    /**
     * 查询模板列表
     */
    List<PuzzleTemplateEntity> list(@Param("scenicId") Long scenicId,
                                     @Param("category") String category,
                                     @Param("status") Integer status);

    /**
     * 插入模板
     */
    int insert(PuzzleTemplateEntity entity);

    /**
     * 更新模板
     */
    int update(PuzzleTemplateEntity entity);

    /**
     * 删除模板（逻辑删除）
     */
    int deleteById(@Param("id") Long id);

    /**
     * 检查模板编码是否存在
     */
    int countByCode(@Param("code") String code, @Param("excludeId") Long excludeId);
}
