package org.jeecg.modules.adweb.site.service;

import com.baomidou.mybatisplus.extension.service.IService;

import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.adweb.site.dto.WordPressConfig;
import org.jeecg.modules.adweb.site.entity.AdwebSite;

import java.util.List;

/**
 * @Description: adweb站点配置表单
 * @Author: jeecg-boot
 * @Date: 2024-09-29
 * @Version: V1.0
 */
public interface IAdwebSiteService extends IService<AdwebSite> {

    /**
     * 查询wordpress站点配置
     *
     * @param siteCode
     */
    WordPressConfig queryWordPressConfig(String siteCode);

    /**
     * 根据siteId获取siteCode
     *
     * @param id 站点id
     * @return 站点code
     */
    String getSiteCodeById(Integer id);

    /**
     * 根据父站点id获取站群所有id
     *
     * @param parentId 父站点id
     * @return 父站点id和子站点id
     */
    List<Integer> getAllSiteIdByParentId(Integer parentId);

    /**
     * 根据站点id获取站群id
     *
     * @param siteId 站点id
     * @return 站群id列表
     */
    List<Integer> getAllSiteIdBySiteId(Integer siteId);

    /**
     * 根据siteCode返回站点信息
     *
     * @param siteCode
     * @return
     */
    AdwebSite getSiteByCode(String siteCode);

    /**
     * 根据用户id查询所有未删除的站点
     *
     * @param uid 用户id
     * @return 站点id
     */
    List<Integer> getAllSiteIdByUid(String uid);

    /** 查询全部有效的站点code */
    List<String> getAllActiveSiteCodes();

    boolean updateSiteFlow(String siteCode);

    /**
     * 判断此账号是有子账号或者此账号本身是子账号
     *
     * @return
     */
    boolean hasSub(LoginUser loginUser);
}
