package com.zhentao.controller;

import com.zhentao.dto.BlockDto;
import com.zhentao.service.ChatFriendService;
import com.zhentao.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/api/chatfriend")
public class ChatFriendController {
    @Autowired
    private ChatFriendService chatFriendService;

    @PostMapping("/block")
    public ResultVo block(@RequestBody BlockDto blockDto){
        return chatFriendService.block(blockDto);
    }

    @GetMapping("/getBlacklist")
    public ResultVo getBlacklist(@RequestParam("userId") Long userId){
        return chatFriendService.getBlacklist(userId);
    }

    @PostMapping("/checkBlock")
    public ResultVo checkBlock(@RequestBody Map<String, String> params) {
        String userId = params.get("userId"); // 自己的ID
        String targetUserId = params.get("targetUserId"); // 对方的ID

        // 查询对方的拉黑列表中是否包含自己
        return chatFriendService.isTargetBlockedMe(targetUserId, userId);
    }
//    我的页面拉黑列表
    @GetMapping("/list")
    public ResultVo list(@RequestParam("userId") Long userId){
        return chatFriendService.getblocklist(userId);
    }

    /**
     * 移除黑名单
     * @param userId 当前用户ID
     * @param blockedUserId 被拉黑的用户ID（对应friendId）
     * @return 操作结果
     */
    @DeleteMapping("/remove")
    public ResultVo removeBlacklist(
            @RequestParam("userId") Long userId,
            @RequestParam("blockedUserId") Long blockedUserId) {

        boolean result = chatFriendService.removeFromBlacklist(userId, blockedUserId);
        if (result) {
            return ResultVo.success("移除黑名单成功");
        } else {
            return ResultVo.fail("移除黑名单失败");
        }
    }

}
