package com.xhpc.card.service;

import com.xhpc.card.domain.*;

/**
 * 留言板服务的Service
 *
 * @author WH
 * @date 2022/1/7 17:57
 * @since version-1.0
 */
public interface XhpcMessageBoardService {

    /**
     * 将用户发送的信息保存到数据库中
     *
     * @param userMessage 用户发送的信息
     * @author WH
     * @date 2022/1/10 14:17
     * @since version-1.0
     */
    void writeUserMessageToDb(SendMessageToPlatformRequest userMessage);

    /**
     * 将平台（租户）发送的信息保存到数据库中
     *
     * @param platformRequest 平台消息
     * @author WH
     * @date 2022/1/11 13:58
     * @since version-1.0
     */
    void platformSendMessageToUser(PlatformSendMessageToUserRequest platformRequest);

    /**
     * 根据用户条件，查询指定的数据库中的记录
     *
     * @param userQueryCondition 用户传入的条件
     * @return 用户在数据库中发送的记录
     *
     * @author WH
     * @date 2022/1/12 15:30
     * @since version-1.0
     */
    QueryUserMassageResponse queryUserMessage(UserQueryCondition userQueryCondition);

    /**
     * 根据租户id和租户类型查询指定的租户头像
     *
     * @param tenantId   租户id
     * @param tenantType 租户类型
     * @return 头像地址
     * @author WH
     * @date 2022/1/13 18:30
     * @since version-1.0
     */
    String returnPlatformAvatar(String tenantId, Integer tenantType);

    /**
     * 平台用户查询哪些用户发留言了的列表
     *
     * @param param query list condition
     * @return 发了信息的用户列表
     * @throws Exception 当出现空指针异常时，抛出此异常
     * @author WH
     * @date 2022/1/14 11:25
     * @since version-1.0
     */
    QueryUserListResponse queryUserList(QueryUserListRequest param) throws Exception;

    /**
     * 平台查询用户发送过来的信息，与用户查看它自己的信息逻辑是一致的
     *
     * @param userQueryCondition 要查询的用户的信息
     * @return 返回用户与平台用户的一个月的聊天记录
     * @author WH
     * @date 2022/1/16 15:39
     * @since version-1.0
     */
    QueryUserMassageResponse platformQueryMessage(UserQueryCondition userQueryCondition);

    /**
     * 删除指定租户用户列表中的用户
     *
     * @param userInfo 指定用户信息
     * @author WH
     * @date 2022/1/18 17:39
     * @since version-1.0
     */
    void deleteListUser(UserInfo userInfo);

}
