package org.xyzh.api.system.service;

import org.xyzh.common.core.domain.ResultDomain;
import org.xyzh.common.core.page.PageRequest;
import org.xyzh.common.dto.sys.TbGuestDTO;

/**
 * @description    来客服务接口
 * @filename    GuestService.java
 * @author    yslg
 * @copyright xyzh
 * @since 2025-12-18
 */
public interface GuestService {
    
    /**
     * @description    创建来客
     * @param guest    来客信息
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> createGuest(TbGuestDTO guest);

    /**
     * @description    更新来客
     * @param guest    来客信息
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> updateGuest(TbGuestDTO guest);

    /**
     * @description    删除来客
     * @param userId    来客ID
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> deleteGuest(String userId);

    /**
     * @description    查询单个来客
     * @param guest    来客信息
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> selectGuestOne(TbGuestDTO guest);

    /**
     * @description    根据微信id查询来客
     * @param    wechatId
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> selectGuestByWechatId(String wechatId);

    /**
     * @description    查询来客列表
     * @param guest    来客信息
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> selectGuestList(TbGuestDTO guest);

    /**
     * @description    查询来客分页列表
     * @param pageRequest    分页请求
     * @author    yslg
     * @since 2025-12-18
     */
    ResultDomain<TbGuestDTO> selectGuestPage(PageRequest<TbGuestDTO> pageRequest);
}
