package com.tmerclub.cloud.cuerecycle.service;

import com.tmerclub.cloud.common.database.dto.PageDTO;
import com.tmerclub.cloud.common.database.vo.PageVO;
import com.tmerclub.cloud.cuerecycle.model.dto.CueTypeDTO;
import com.tmerclub.cloud.cuerecycle.model.vo.CueTypeVO;

/**
 * 球杆类型Service接口
 *
 * @author : frank
 * @create : 2025-04-11 21:22:35
 */
public interface CueTypeService {

    /**
     * 获取球杆类型分页列表
     *
     * @param pageDTO    分页参数
     * @param cueTypeDTO 查询参数
     * @return 分页数据
     */
    PageVO<CueTypeVO> page(PageDTO pageDTO, CueTypeDTO cueTypeDTO);

    /**
     * 查询已启动球杆类型列表
     *
     * @param pageDTO 分页参数
     * @return 分页数据
     */
    PageVO<CueTypeVO> listEnabled(PageDTO pageDTO);

    /**
     * 获取球杆类型详情
     *
     * @param typeId 主键
     * @return 球杆类型详情
     */
    CueTypeVO getById(Long typeId);

    /**
     * 新增球杆类型
     *
     * @param cueTypeDTO 新增参数
     * @return 新增结果
     */
    int save(CueTypeDTO cueTypeDTO);

    /**
     * 修改球杆类型
     *
     * @param cueTypeDTO 修改参数
     * @return 修改结果
     */
    int update(CueTypeDTO cueTypeDTO);

    /**
     * 删除球杆类型
     *
     * @param typeId 主键
     * @return 删除结果
     */
    int delete(Long typeId);
}