using System;
using System.Collections.Generic;
using IRaCIS.Core.Application.Contracts;
using IRaCIS.Core.Application.Contracts.DTO;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
namespace IRaCIS.Core.API.Controllers.QA
{
///
/// QA 记录 和对话管理
///
[Route("QARecord")]
[ApiController, Authorize, ApiExplorerSettings(GroupName = "Image")]
[AllowAnonymous]
public class QARecordController : ControllerBase
{
private readonly IQARecordService _qaRecordService;
public QARecordController(IQARecordService qaRecordService)
{
_qaRecordService = qaRecordService;
}
///
///QA记录表 包含信息 包含两部分 一部分 :字典项问题项 +对应得描述 如 缺少序列 + 5个
/// 第二部分 额外补充得信息 根据 QARecord 中得Id 是否传递 判断是添加还是更新
///
///
///
[HttpPost, Route("AddOrUpdateQARecord")]
public IResponseOutput AddOrUpdateQARecord(QAToalCommand qaTotalCommand)
{
return _qaRecordService.AddOrUpdateQARecord(qaTotalCommand);
}
///
/// 删除Qa记录
///
///
///
[HttpDelete, Route("DeleteQARecord/{qaQARecordId:guid}")]
public IResponseOutput DeleteQARecord(Guid qaQARecordId)
{
return _qaRecordService.DeleteQARecord(qaQARecordId);
}
///
/// 获取QA记录列表 一个Study 可以进行多次QA 针对每次QA 可以添加回复
///
///
///
///
[HttpGet, Route("GetQARecordList/{studyId:guid}/{trialId:guid}")]
public IResponseOutput GetQARecordList(Guid studyId,Guid trialId)
{
return ResponseOutput.Ok(_qaRecordService.GetQARecordList(studyId, trialId));
}
///
/// 针对 某条Qa 添加回复
///
///
///
[HttpPost, Route("AddQAReply")]
public IResponseOutput AddQAReply(QADialogCommand qaDialogCommand)
{
return _qaRecordService.AddQAReply(qaDialogCommand);
}
///
/// 删除QA回复记录
///
///
///
[HttpDelete, Route("DeleteQAReply/{qaReplyId:guid}")]
public IResponseOutput DeleteQAReply(Guid qaReplyId)
{
return _qaRecordService.DeleteQAReply(qaReplyId);
}
///
/// 展开 某一QA下得 聊天记录
///
///
///
[HttpGet, Route("GetQaRecordDialogList/{qaRecordId:guid}")]
public IResponseOutput> GetQaRecordDialogList(Guid qaRecordId)
{
return ResponseOutput.Ok(_qaRecordService.GetQaRecordDialogList(qaRecordId));
}
}
}