package com.ylx.servicecategory.mapper;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylx.servicecategory.domain.ServiceCategory;

import java.util.List;

/**
 * 服务类目数据访问层
 */
public interface ServiceCategoryMapper extends BaseMapper<ServiceCategory> {

    /**
     * H5查询首页服务类目
     *
     * @param queryWrapper 查询条件
     * @return H5首页服务类目列表
     */
    default List<ServiceCategory> selectH5ServiceCategoryList(LambdaQueryWrapper<ServiceCategory> queryWrapper) {
        return selectList(queryWrapper);
    }

    /**
     * 根据主键ID查询服务类目详情
     *
     * @param id 服务类目ID
     * @return 服务类目详情
     */
    default ServiceCategory selectServiceCategoryById(Long id) {
        return selectById(id);
    }

    /**
     * 分页查询服务类目
     *
     * @param page         分页参数
     * @param queryWrapper 查询条件
     * @return 服务类目分页数据
     */
    default Page<ServiceCategory> selectServiceCategoryPage(Page<ServiceCategory> page, LambdaQueryWrapper<ServiceCategory> queryWrapper) {
        return selectPage(page, queryWrapper);
    }

    /**
     * 新增服务类目
     *
     * @param serviceCategory 服务类目
     * @return 影响行数
     */
    default int insertServiceCategory(ServiceCategory serviceCategory) {
        return insert(serviceCategory);
    }

    /**
     * 根据主键修改服务类目
     *
     * @param serviceCategory 服务类目
     * @return 影响行数
     */
    default int updateServiceCategoryById(ServiceCategory serviceCategory) {
        return updateById(serviceCategory);
    }

    /**
     * 根据主键删除服务类目
     *
     * @param id 服务类目ID
     * @return 影响行数
     */
    default int deleteServiceCategoryById(Long id) {
        return deleteById(id);
    }
}
