暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

session.model.ts 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. // 会话状态枚举
  2. export enum SessionStatus {
  3. RequirementDocument = 'requirement_document',
  4. TechnicalDocument = 'technical_document',
  5. Code = 'code',
  6. Test = 'test',
  7. Release = 'release'
  8. }
  9. // 智能体枚举
  10. export enum Agent {
  11. Replenish = 'replenish',
  12. Transfer = 'transfer',
  13. Allocation = 'allocation',
  14. Report = 'report'
  15. }
  16. // 智能体显示名称映射
  17. export const AgentDisplayName: Record<Agent, string> = {
  18. [Agent.Replenish]: '补货',
  19. [Agent.Transfer]: '调拨',
  20. [Agent.Allocation]: '配货',
  21. [Agent.Report]: '报表'
  22. }
  23. // 会话信息(对应后端Session模型)
  24. export interface Session {
  25. id: string; // 会话ID
  26. project_id: string; // 项目ID
  27. title: string; // 标题
  28. agent_name: string; // 智能体名称
  29. description?: string; // 项目描述
  30. status: string; // 状态:requirement_document|technical_document|code|test|release
  31. user_id?: string; // 用户ID
  32. tenant_id?: string; // 租户ID
  33. created_at?: string; // 创建时间
  34. updated_at?: string; // 更新时间
  35. // 向后兼容字段
  36. parentID?: string;
  37. path?: { [key: string]: string };
  38. port?: number;
  39. baseURL?: string;
  40. }
  41. // 代码项(对应后端CodeItem模型)
  42. export interface CodeItem {
  43. order: number; // 执行次序
  44. title: string; // 步骤标题
  45. select_part: string; // select部分SQL代码
  46. from_part: string; // from部分代码
  47. where_part: string; // where部分
  48. group_by_part: string; // group by部分
  49. order_by_part: string; // order by部分
  50. temp_table_name: string; // 临时表名称
  51. parameters: Record<string, any>; // 参数集合
  52. return_columns: Record<string, string>; // 返回的列名称和对应的中文名称(映射)
  53. }
  54. // 会话明细(对应后端SessionDetail模型)
  55. export interface SessionDetail {
  56. id?: string; // MongoDB自动生成的ID
  57. session_id: string; // 关联的会话ID
  58. requirement_doc: string; // 需求文档
  59. technical_doc: string; // 技术文档
  60. code_items: CodeItem[]; // 代码数组
  61. history_sessions: string[]; // 历史会话ID数组
  62. created_at?: string; // 创建时间
  63. updated_at?: string; // 更新时间
  64. }
  65. // 包含主会话和明细的完整响应
  66. export interface SessionWithDetail {
  67. session: Session;
  68. detail?: SessionDetail;
  69. history_count?: number; // 历史消息数量
  70. }
  71. // 创建项目请求(对应后端SessionCreateRequest)
  72. export interface ProjectCreateRequest {
  73. title: string; // 标题
  74. agent_name: string; // 智能体名称
  75. project_id?: string; // 项目ID(前端生成proj_前缀UUID)
  76. description?: string; // 项目描述
  77. }
  78. // 创建项目响应
  79. export interface ProjectCreateResponse extends Session {
  80. // 继承Session所有字段
  81. }
  82. // 创建项目API响应
  83. export interface ProjectCreateApiResponse extends QueryResult<ProjectCreateResponse> {
  84. // data字段包含ProjectCreateResponse
  85. }
  86. // 项目列表响应
  87. export interface ProjectListResponse extends QueryResult<Session[]> {
  88. // data字段包含会话数组(按项目分组)
  89. }
  90. // 向后兼容:保留原有接口名称
  91. export interface SessionCreateRequest extends ProjectCreateRequest {
  92. // 保持兼容,实际使用ProjectCreateRequest
  93. }
  94. export interface SessionCreateResponse extends ProjectCreateResponse {
  95. // 保持兼容
  96. }
  97. export interface SessionCreateApiResponse extends ProjectCreateApiResponse {
  98. // 保持兼容
  99. }
  100. export interface SessionListResponse extends ProjectListResponse {
  101. // 保持兼容
  102. }
  103. // 从通用QueryResult导入
  104. import { QueryResult } from './auth.model';