package com.community.huiju.service;

import com.community.commom.mode.ResponseBean;
import com.community.commom.session.UserElement;
import com.community.huiju.model.*;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * @author weichaochao
 * @Title: SocialServiceI
 * @date 2018/10/23
 */
public interface SocialServiceI {

	/**
	 * 查看公告详情
	 * @param id
	 * @param communityId
	 * @param userId
	 * @return
	 */
    TpAnnouncement findAnnouncementDetail(Integer id, Integer communityId, Integer userId);


	/**
	 * 分页获取公告列表
	 * @param communityId
	 * @param title
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	ResponseBean getAnnouncements(Integer communityId, String title, Integer pageNum, Integer pageSize);

	/**
	 * 公告轮播图
	 * @param communityId
	 * @return
	 */
	List<TpAnnouncement> getAnnouncement(Integer communityId);
	
	/**
	 * 分页获取活动列表
	 * @param communityId
	 * @param title
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	ResponseBean getActivitys(Integer communityId, String title, Integer pageNum, Integer pageSize);
	
	/**
	 * 获取活动帖子详情
	 * @param activityId
	 * @param communityId
	 * @return
	 */
	TpActivity findActivityDetail(Integer activityId, Integer communityId, Integer userId);

	/**
	 * 活动报名
	 * @param activityId
	 * @param communityId
	 * @param remark
	 * @return
	 */
	ResponseBean findTaUserInfo(UserElement userElement, Integer activityId, Integer communityId, String remark);

	/**
	 * 修改活动报名
	 * @param activityId
	 * @param communityId
	 * @param userId
	 * @param remark
	 * @return
	 */
	ResponseBean updateActivtiySignUp(Integer activityId, Integer communityId, Integer userId, String remark);

	/**
	 * 查看 活动报名详情
	 * @param activityId
	 * @param communityId
	 * @param userId
	 * @return
	 */
	ResponseBean getActivtiySignUp(Integer activityId, Integer communityId, Integer userId);

	/**
	 * 获取二手租赁详情
	 * @param activityId
	 * @param communityId
	 * @return
	 */
	TpTransaction findUsedDetails(Integer activityId, Integer communityId, Integer userId);
	/**
	 * 获取所有的交易帖子
	 * @param communityId
	 * @param type
	 * @param transactionTitle
	 * @return
	 */
	ResponseBean findAllTransaction(Integer communityId, String transactionTitle, String type, Integer pageNum, Integer paeSize);

	/**
	 * 添加二手租赁帖子
	 */
    ResponseBean addAllTransaction(UserElement userElement, String paramets);


	/**
	 * 获取当前用户发布所有的帖子
	 * @param userElement
	 * @param pageNum
	 * @param pageSize
	 * @param type
	 * @return
	 */
	ResponseBean selectAllTransaction(UserElement userElement,Integer pageNum,Integer pageSize,Integer type);

	/**
	 * 修改当前帖子
	 */
	ResponseBean updateTransaction(String paramets,Integer userId,Integer id);

	/**
	 * 评价工单以及评分
	 * @param communityId
	 * @param tpTicket
	 * @param ticketId
	 */
	void accessTicket(Integer communityId, TpTicket tpTicket, String ticketId, Integer userId);

	/**
	 * 获取活动轮播图
	 * @param communityId
	 * @return
	 */
	List<TpActivity> getActivity(Integer communityId);
	
	/**
	 * 取消报名接口
	 * @param activityId
	 * @param communityId
	 * @param userId
	 * @return
	 */
	ResponseBean cancelSignActivity(Integer activityId, Integer communityId, Integer userId);

	/**
	 * 删除二手租赁帖子
 	 * @param id
	 * @return
	 */
	ResponseBean deleteransaction(Integer id, UserElement userElement);
	
	/**
	 * 获取举报原因列表
	 * @return
	 */
	List<Map<String, Object>> getReportReasons();
	
	/**
	 * 举报二手交易帖子
	 * @param userId
	 * @param communityId
	 * @param paramets
	 * @return
	 */
	ResponseBean reportTransaction(Integer userId,Integer communityId, String paramets);

	/**
	 * 查询 二手交易帖子的回复
	 * @param transactionId 帖子id
	 * @param userElement 用户信息体
	 * @param order asc 正序  desc 倒序
	 * @param pageNum
	 * @param pageSize
	 * @return
	 */
	ResponseBean findUsedDetailsReply(Integer transactionId, UserElement userElement, String order, Integer pageNum, Integer pageSize,Integer type);
	/**
	 * 二帖子回复
	 *@param paramets
	 *@param userElement
	 *@return
	 */
    ResponseBean addTransactionReply(String paramets, UserElement userElement);

	/**
	 * 添加点赞
	 * @param paramets
	 * @param userElement
	 * @return
	 */
	ResponseBean addTransactionLike(String paramets, UserElement userElement);

	/**
	 * 获取我的活动列表
	 * @return
	 */
    ResponseBean userActivityList( UserElement userElementm,Integer pageNum,Integer paeSize);

	/**
	 * 我参与过的话题
	 * @return
	 */
	ResponseBean userTransactionList(UserElement userElement,Integer pageNum,Integer paeSize);

	/**
	 * 扫码签到
	 * @param paramets
	 * @param userElement
	 * @return
	 */
    ResponseBean tpActivitySignInAdd(String paramets, UserElement userElement);

	/**
	 * 回复对话
	 * @param paramets
	 * @param userElement
	 * @return
	 */
	ResponseBean replyAdd(String paramets, UserElement userElement);
}
