package com.ycwl.basic.puzzle.service; import com.ycwl.basic.puzzle.dto.ElementCreateRequest; import com.ycwl.basic.puzzle.dto.PuzzleElementDTO; import com.ycwl.basic.puzzle.dto.PuzzleTemplateDTO; import com.ycwl.basic.puzzle.dto.TemplateCreateRequest; import java.util.List; /** * 拼图模板管理服务接口 * * @author Claude * @since 2025-01-17 */ public interface IPuzzleTemplateService { /** * 创建模板 */ Long createTemplate(TemplateCreateRequest request); /** * 更新模板 */ void updateTemplate(Long id, TemplateCreateRequest request); /** * 删除模板(会同时删除关联的元素) */ void deleteTemplate(Long id); /** * 获取模板详情(包含元素列表) */ PuzzleTemplateDTO getTemplateDetail(Long id); /** * 根据编码获取模板详情 */ PuzzleTemplateDTO getTemplateByCode(String code); /** * 获取模板列表 */ List listTemplates(Long scenicId, String category, Integer status); /** * 为模板添加元素 */ Long addElement(ElementCreateRequest request); /** * 批量添加元素 */ void batchAddElements(Long templateId, List elements); /** * 更新元素 */ void updateElement(Long id, ElementCreateRequest request); /** * 删除元素 */ void deleteElement(Long id); /** * 获取元素详情 */ PuzzleElementDTO getElementDetail(Long id); }