import { DBModel } from "../models/index.js"; import ResponseUtil from "../utils/responseUtil.js"; class HandlerEscortRecord { constructor() { } async getMyRecords(ctx) { try { const userId = ctx.state.user?._id || ctx.request.query?.userId; if (!userId) { return ResponseUtil.badRequest(ctx, "缺少用户ID"); } const { page = 1, pageSize = 20, status } = ctx.request.query; const records = await DBModel.EscortRecord.findRecordsByUser(userId, { page: parseInt(page), pageSize: parseInt(pageSize), status, }); return ResponseUtil.success(ctx, { records }, "查询成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async getAttendantRecords(ctx) { try { const attendantId = ctx.state.user?._id || ctx.request.query?.attendantId; if (!attendantId) { return ResponseUtil.badRequest(ctx, "缺少陪诊员ID"); } const { page = 1, pageSize = 20, status } = ctx.request.query; const records = await DBModel.EscortRecord.findRecordsByAttendant(attendantId, { page: parseInt(page), pageSize: parseInt(pageSize), status, }); return ResponseUtil.success(ctx, { records }, "查询成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async getRecordById(ctx) { try { const { id } = ctx.params; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } const record = await DBModel.EscortRecord.findById(id); if (!record) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record }, "查询成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async createRecord(ctx) { try { const record = ctx.request.body; if (!record.userId) { return ResponseUtil.badRequest(ctx, "缺少患者信息"); } const newRecord = await DBModel.EscortRecord.createRecord(record); return ResponseUtil.success(ctx, { record: newRecord }, "创建成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async updateRecord(ctx) { try { const { id } = ctx.params; const update = ctx.request.body; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } const updatedRecord = await DBModel.EscortRecord.updateRecord(id, update); if (!updatedRecord) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record: updatedRecord }, "更新成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } async updateStatus(ctx) { try { const { id } = ctx.params; const { status } = ctx.request.body; if (!id) { return ResponseUtil.badRequest(ctx, "缺少记录ID"); } if (!status) { return ResponseUtil.badRequest(ctx, "缺少状态值"); } const updatedRecord = await DBModel.EscortRecord.updateRecord(id, { "escort.status": status, }); if (!updatedRecord) { return ResponseUtil.error(ctx, "陪诊记录不存在", null, 404); } return ResponseUtil.success(ctx, { record: updatedRecord }, "状态更新成功"); } catch (err) { return ResponseUtil.internalError(ctx, err.message); } } } export { HandlerEscortRecord };