import httpService from "./httpService"; import type { ApiResponse } from "./httpService"; // 评论项接口定义 export interface CommentActivity { id: number; type: "comment" | "reply"; activity_type: string; game_id: number; parent_id: number | null; content: string; like_count: number; reply_count: number; create_time: string; user: { id: number; nickname: string; province: string; avatar_url: string; }; game: { id: number; title: string; start_time: string; location_name: string; image?: string; image_list?: string[]; }; reply_to_user: { id: number; nickname: string; avatar_url: string; } | null; parent_comment: { id: number; content: string; user_id: number; user_nickname: string; } | null; } // 获取评论动态请求参数 export interface GetMyActivitiesParams { page?: number; pageSize?: number; } // 评论动态列表响应 export interface CommentActivitiesResponse { rows: CommentActivity[]; count: number; page: number; pageSize: number; totalPages: number; } class CommentService { // 获取当前用户的评论和回复动态 async getMyActivities(params: GetMyActivitiesParams = {}): Promise> { const { page = 1, pageSize = 10 } = params; return httpService.post("/comments/my_activities", { page, pageSize }, { showLoading: false }); } // 发表评论 async createComment(game_id: number, content: string): Promise> { return httpService.post("/comments/create", { game_id, content }); } // 回复评论 async replyComment(parent_id: number, reply_to_user_id: number, content: string): Promise> { return httpService.post("/comments/reply", { parent_id, reply_to_user_id, content }); } // 获取评论列表 async getCommentList(game_id: number, page: number = 1, pageSize: number = 10): Promise> { return httpService.post("/comments/list", { game_id, page, pageSize }); } // 点赞/取消点赞评论 async likeComment(comment_id: number): Promise> { return httpService.post("/comments/like", { comment_id }); } // 删除评论 async deleteComment(comment_id: number): Promise> { return httpService.post("/comments/delete", { comment_id }); } // 获取评论的所有回复 async getCommentReplies(comment_id: number, page: number = 1, pageSize: number = 10): Promise> { return httpService.post("/comments/replies", { comment_id, page, pageSize }); } } export default new CommentService();