package com.starry.admin.modules.shop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.starry.admin.modules.shop.module.entity.PlayCommodityInfoEntity;
import com.starry.admin.modules.shop.module.vo.PlayCommodityInfoVo;
import com.starry.admin.modules.weichat.entity.PlayCommodityReturnVo;
import java.util.List;

/**
 * 服务项目Service接口
 *
 * @author admin
 * @since 2024-03-31
 */
public interface IPlayCommodityInfoService extends IService<PlayCommodityInfoEntity> {

    /**
     * * 新增租户时 * 初始化租户服务项目
     *
     * @param tenantId
     *            租户ID
     */
    void initPlayCommodityInfo(String tenantId);

    /**
     * 查询服务项目
     *
     * @param id
     *            服务项目ID
     * @param levelId
     *            店员等级ID
     * @return PlayCommodityInfoVo
     * @author admin
     **/
    PlayCommodityInfoVo queryCommodityInfo(String id, String levelId);

    // /**
    // * 查询服务项目
    // *
    // * @param id UUID
    // * @return 服务项目
    // */
    // PlayCommodityInfoVo queryCommodityInfo(String id);

    /**
     * 查询服务项目
     *
     * @param id
     *            服务项目主键
     * @return 服务项目
     */
    PlayCommodityInfoEntity selectPlayCommodityInfoById(String id);

    /**
     * 获取店铺服务项目
     *
     * @return List<PlayCommodityReturnVo>
     **/
    List<PlayCommodityReturnVo> selectTree();

    /**
     * 查询当前租户所有服务项目
     *
     * @return 当前租户所有服务项目列表
     */
    List<PlayCommodityInfoEntity> selectByType();

    /**
     * 查询当前租户所有服务项目列表
     *
     * @return 当前租户所有服务项目列表
     */
    List<PlayCommodityInfoEntity> selectAll();

    /**
     * 查询当前租户所有服务项目列表
     *
     * @return 当前租户所有服务项目列表
     */
    List<PlayCommodityInfoEntity> selectByPId(String pId);

    /**
     * 查询服务项目列表
     *
     * @param playCommodityInfo
     *            服务项目
     * @return 服务项目集合
     */
    IPage<PlayCommodityInfoEntity> selectPlayCommodityInfoByPage(PlayCommodityInfoEntity playCommodityInfo);

    /**
     * 新增服务项目
     *
     * @param playCommodityInfo
     *            服务项目
     * @return 结果
     */
    boolean create(PlayCommodityInfoEntity playCommodityInfo);

    /**
     * 修改服务项目
     *
     * @param playCommodityInfo
     *            服务项目
     * @return 结果
     */
    boolean update(PlayCommodityInfoEntity playCommodityInfo);

    /**
     * 批量删除服务项目
     *
     * @param ids
     *            需要删除的服务项目主键集合
     * @return 结果
     */
    int deletePlayCommodityInfoByIds(String[] ids);

    /**
     * 删除服务项目信息
     *
     * @param id
     *            服务项目主键
     * @return 结果
     */
    int deletePlayCommodityInfoById(String id);
}
