package com.gxwebsoft.cms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.gxwebsoft.cms.entity.CmsBannerGroup;
import com.gxwebsoft.cms.param.CmsBannerGroupParam;
import com.gxwebsoft.common.core.web.PageResult;

import java.util.List;

/**
 * 轮播组Service接口
 *
 * @author WorkBuddy
 * @since 2026-07-19
 */
public interface CmsBannerGroupService extends IService<CmsBannerGroup> {

    /**
     * 分页查询(带组内items)
     *
     * @param param 查询参数
     * @return 分页结果
     */
    PageResult<CmsBannerGroup> pageRel(CmsBannerGroupParam param);

    /**
     * 查询全部(带组内items)
     *
     * @param param 查询参数
     * @return 列表
     */
    List<CmsBannerGroup> listRel(CmsBannerGroupParam param);

    /**
     * 根据id查询(带组内items)
     *
     * @param groupId 轮播组ID
     * @return 轮播组
     */
    CmsBannerGroup getByIdRel(Integer groupId);

    /**
     * 保存轮播组(可携带items一次性创建)
     *
     * @param group 轮播组(含items)
     * @return 是否成功
     */
    boolean saveGroup(CmsBannerGroup group);

    /**
     * 更新轮播组(可携带items一次性全量替换)
     *
     * @param group 轮播组(含items)
     * @return 是否成功
     */
    boolean updateGroup(CmsBannerGroup group);

    /**
     * 删除轮播组(连带删除组内items)
     *
     * @param groupId 轮播组ID
     * @return 是否成功
     */
    boolean removeGroup(Integer groupId);
}
