package com.gxwebsoft.cms.service;

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

import java.util.List;

/**
 * 单页Service
 *
 * @author WorkBuddy
 * @since 2026-07-29
 */
public interface CmsPageService extends IService<CmsPage> {

    /**
     * 分页关联查询
     */
    PageResult<CmsPage> pageRel(CmsPageParam param);

    /**
     * 关联查询全部
     */
    List<CmsPage> listRel(CmsPageParam param);

    /**
     * 根据id查询
     */
    CmsPage getByIdRel(Integer pageId);

    /**
     * 根据 path 查询已发布单页（供公开站使用，仅返回 status=1）
     */
    CmsPage getPublishedByPath(String path);

    /**
     * 新增单页（写入租户、校验 path 唯一）
     */
    boolean saveRel(CmsPage page);

    /**
     * 修改单页（校验 path 唯一，排除自身）
     */
    boolean updateByIdRel(CmsPage page);

    /**
     * path 是否已被当前租户占用（排除指定 pageId）
     */
    boolean pathExists(String path, Integer excludePageId);
}
