@octo-cyber/sea-king 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/controllers/character.controller.d.ts +10 -0
  2. package/dist/controllers/character.controller.d.ts.map +1 -0
  3. package/dist/controllers/character.controller.js +58 -0
  4. package/dist/controllers/character.controller.js.map +1 -0
  5. package/dist/controllers/chat.controller.d.ts +13 -0
  6. package/dist/controllers/chat.controller.d.ts.map +1 -0
  7. package/dist/controllers/chat.controller.js +113 -0
  8. package/dist/controllers/chat.controller.js.map +1 -0
  9. package/dist/controllers/crisis.controller.d.ts +10 -0
  10. package/dist/controllers/crisis.controller.d.ts.map +1 -0
  11. package/dist/controllers/crisis.controller.js +69 -0
  12. package/dist/controllers/crisis.controller.js.map +1 -0
  13. package/dist/controllers/index.d.ts +10 -0
  14. package/dist/controllers/index.d.ts.map +1 -0
  15. package/dist/controllers/index.js +24 -0
  16. package/dist/controllers/index.js.map +1 -0
  17. package/dist/controllers/leaderboard.controller.d.ts +9 -0
  18. package/dist/controllers/leaderboard.controller.d.ts.map +1 -0
  19. package/dist/controllers/leaderboard.controller.js +51 -0
  20. package/dist/controllers/leaderboard.controller.js.map +1 -0
  21. package/dist/controllers/live-chat.controller.d.ts +14 -0
  22. package/dist/controllers/live-chat.controller.d.ts.map +1 -0
  23. package/dist/controllers/live-chat.controller.js +95 -0
  24. package/dist/controllers/live-chat.controller.js.map +1 -0
  25. package/dist/controllers/matchmaking.controller.d.ts +22 -0
  26. package/dist/controllers/matchmaking.controller.d.ts.map +1 -0
  27. package/dist/controllers/matchmaking.controller.js +157 -0
  28. package/dist/controllers/matchmaking.controller.js.map +1 -0
  29. package/dist/controllers/phrase.controller.d.ts +11 -0
  30. package/dist/controllers/phrase.controller.d.ts.map +1 -0
  31. package/dist/controllers/phrase.controller.js +78 -0
  32. package/dist/controllers/phrase.controller.js.map +1 -0
  33. package/dist/controllers/profile.controller.d.ts +9 -0
  34. package/dist/controllers/profile.controller.d.ts.map +1 -0
  35. package/dist/controllers/profile.controller.js +44 -0
  36. package/dist/controllers/profile.controller.js.map +1 -0
  37. package/dist/controllers/turing.controller.d.ts +18 -0
  38. package/dist/controllers/turing.controller.d.ts.map +1 -0
  39. package/dist/controllers/turing.controller.js +103 -0
  40. package/dist/controllers/turing.controller.js.map +1 -0
  41. package/dist/entities/chat-character.entity.d.ts +34 -0
  42. package/dist/entities/chat-character.entity.d.ts.map +1 -0
  43. package/dist/entities/chat-character.entity.js +101 -0
  44. package/dist/entities/chat-character.entity.js.map +1 -0
  45. package/dist/entities/chat-message.entity.d.ts +26 -0
  46. package/dist/entities/chat-message.entity.d.ts.map +1 -0
  47. package/dist/entities/chat-message.entity.js +84 -0
  48. package/dist/entities/chat-message.entity.js.map +1 -0
  49. package/dist/entities/chat-session.entity.d.ts +31 -0
  50. package/dist/entities/chat-session.entity.d.ts.map +1 -0
  51. package/dist/entities/chat-session.entity.js +95 -0
  52. package/dist/entities/chat-session.entity.js.map +1 -0
  53. package/dist/entities/chat-thread.entity.d.ts +30 -0
  54. package/dist/entities/chat-thread.entity.d.ts.map +1 -0
  55. package/dist/entities/chat-thread.entity.js +105 -0
  56. package/dist/entities/chat-thread.entity.js.map +1 -0
  57. package/dist/entities/crisis-event.entity.d.ts +30 -0
  58. package/dist/entities/crisis-event.entity.d.ts.map +1 -0
  59. package/dist/entities/crisis-event.entity.js +90 -0
  60. package/dist/entities/crisis-event.entity.js.map +1 -0
  61. package/dist/entities/index.d.ts +38 -0
  62. package/dist/entities/index.d.ts.map +1 -0
  63. package/dist/entities/index.js +62 -0
  64. package/dist/entities/index.js.map +1 -0
  65. package/dist/entities/leaderboard-entry.entity.d.ts +22 -0
  66. package/dist/entities/leaderboard-entry.entity.d.ts.map +1 -0
  67. package/dist/entities/leaderboard-entry.entity.js +75 -0
  68. package/dist/entities/leaderboard-entry.entity.js.map +1 -0
  69. package/dist/entities/live-message.entity.d.ts +34 -0
  70. package/dist/entities/live-message.entity.d.ts.map +1 -0
  71. package/dist/entities/live-message.entity.js +99 -0
  72. package/dist/entities/live-message.entity.js.map +1 -0
  73. package/dist/entities/live-thread.entity.d.ts +50 -0
  74. package/dist/entities/live-thread.entity.d.ts.map +1 -0
  75. package/dist/entities/live-thread.entity.js +144 -0
  76. package/dist/entities/live-thread.entity.js.map +1 -0
  77. package/dist/entities/match-room.entity.d.ts +44 -0
  78. package/dist/entities/match-room.entity.d.ts.map +1 -0
  79. package/dist/entities/match-room.entity.js +131 -0
  80. package/dist/entities/match-room.entity.js.map +1 -0
  81. package/dist/entities/phrase-template.entity.d.ts +28 -0
  82. package/dist/entities/phrase-template.entity.d.ts.map +1 -0
  83. package/dist/entities/phrase-template.entity.js +84 -0
  84. package/dist/entities/phrase-template.entity.js.map +1 -0
  85. package/dist/entities/player-profile.entity.d.ts +36 -0
  86. package/dist/entities/player-profile.entity.d.ts.map +1 -0
  87. package/dist/entities/player-profile.entity.js +112 -0
  88. package/dist/entities/player-profile.entity.js.map +1 -0
  89. package/dist/entities/player-queue.entity.d.ts +24 -0
  90. package/dist/entities/player-queue.entity.d.ts.map +1 -0
  91. package/dist/entities/player-queue.entity.js +76 -0
  92. package/dist/entities/player-queue.entity.js.map +1 -0
  93. package/dist/entities/turing-guess.entity.d.ts +29 -0
  94. package/dist/entities/turing-guess.entity.d.ts.map +1 -0
  95. package/dist/entities/turing-guess.entity.js +94 -0
  96. package/dist/entities/turing-guess.entity.js.map +1 -0
  97. package/dist/index.d.ts +14 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +70 -0
  100. package/dist/index.js.map +1 -0
  101. package/dist/schemas/sea-king.schema.d.ts +109 -0
  102. package/dist/schemas/sea-king.schema.d.ts.map +1 -0
  103. package/dist/schemas/sea-king.schema.js +103 -0
  104. package/dist/schemas/sea-king.schema.js.map +1 -0
  105. package/dist/sea-king.module.d.ts +19 -0
  106. package/dist/sea-king.module.d.ts.map +1 -0
  107. package/dist/sea-king.module.js +114 -0
  108. package/dist/sea-king.module.js.map +1 -0
  109. package/dist/services/character.service.d.ts +30 -0
  110. package/dist/services/character.service.d.ts.map +1 -0
  111. package/dist/services/character.service.js +75 -0
  112. package/dist/services/character.service.js.map +1 -0
  113. package/dist/services/chat.service.d.ts +49 -0
  114. package/dist/services/chat.service.d.ts.map +1 -0
  115. package/dist/services/chat.service.js +332 -0
  116. package/dist/services/chat.service.js.map +1 -0
  117. package/dist/services/crisis.service.d.ts +17 -0
  118. package/dist/services/crisis.service.d.ts.map +1 -0
  119. package/dist/services/crisis.service.js +177 -0
  120. package/dist/services/crisis.service.js.map +1 -0
  121. package/dist/services/index.d.ts +13 -0
  122. package/dist/services/index.d.ts.map +1 -0
  123. package/dist/services/index.js +28 -0
  124. package/dist/services/index.js.map +1 -0
  125. package/dist/services/leaderboard.service.d.ts +29 -0
  126. package/dist/services/leaderboard.service.d.ts.map +1 -0
  127. package/dist/services/leaderboard.service.js +64 -0
  128. package/dist/services/leaderboard.service.js.map +1 -0
  129. package/dist/services/live-chat.service.d.ts +71 -0
  130. package/dist/services/live-chat.service.d.ts.map +1 -0
  131. package/dist/services/live-chat.service.js +273 -0
  132. package/dist/services/live-chat.service.js.map +1 -0
  133. package/dist/services/matchmaking.service.d.ts +60 -0
  134. package/dist/services/matchmaking.service.d.ts.map +1 -0
  135. package/dist/services/matchmaking.service.js +208 -0
  136. package/dist/services/matchmaking.service.js.map +1 -0
  137. package/dist/services/phrase.service.d.ts +27 -0
  138. package/dist/services/phrase.service.d.ts.map +1 -0
  139. package/dist/services/phrase.service.js +70 -0
  140. package/dist/services/phrase.service.js.map +1 -0
  141. package/dist/services/profile.service.d.ts +41 -0
  142. package/dist/services/profile.service.d.ts.map +1 -0
  143. package/dist/services/profile.service.js +107 -0
  144. package/dist/services/profile.service.js.map +1 -0
  145. package/dist/services/seed.service.d.ts +19 -0
  146. package/dist/services/seed.service.d.ts.map +1 -0
  147. package/dist/services/seed.service.js +550 -0
  148. package/dist/services/seed.service.js.map +1 -0
  149. package/dist/services/turing.service.d.ts +74 -0
  150. package/dist/services/turing.service.d.ts.map +1 -0
  151. package/dist/services/turing.service.js +175 -0
  152. package/dist/services/turing.service.js.map +1 -0
  153. package/dist/services/ws-hub.service.d.ts +51 -0
  154. package/dist/services/ws-hub.service.d.ts.map +1 -0
  155. package/dist/services/ws-hub.service.js +174 -0
  156. package/dist/services/ws-hub.service.js.map +1 -0
  157. package/dist/types.d.ts +12 -0
  158. package/dist/types.d.ts.map +1 -0
  159. package/dist/types.js +8 -0
  160. package/dist/types.js.map +1 -0
  161. package/package.json +69 -0
  162. package/web/index.ts +30 -0
  163. package/web/manifest.ts +40 -0
  164. package/web/messages/en-US.json +113 -0
  165. package/web/messages/zh-CN.json +113 -0
  166. package/web/pages/AnalysisPage.tsx +198 -0
  167. package/web/pages/ChatPage.tsx +482 -0
  168. package/web/pages/DashboardPage.tsx +281 -0
  169. package/web/pages/LeaderboardPage.tsx +208 -0
  170. package/web/pages/PhrasesPage.tsx +221 -0
  171. package/web/services/sea-king-service.ts +151 -0
  172. package/web/types/sea-king.ts +249 -0
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ChatMessage = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const chat_thread_entity_js_1 = require("./chat-thread.entity.js");
15
+ const chat_character_entity_js_1 = require("./chat-character.entity.js");
16
+ let ChatMessage = class ChatMessage {
17
+ id;
18
+ threadId;
19
+ characterId;
20
+ /** 消息角色 */
21
+ role;
22
+ /** 消息内容 */
23
+ content;
24
+ /** 好感度变化值(正数加分,负数扣分) */
25
+ favorDelta;
26
+ /** 好感度变化原因 */
27
+ favorReason;
28
+ /** 消息情感标签 */
29
+ sentiment;
30
+ thread;
31
+ character;
32
+ createdAt;
33
+ };
34
+ exports.ChatMessage = ChatMessage;
35
+ __decorate([
36
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
37
+ __metadata("design:type", String)
38
+ ], ChatMessage.prototype, "id", void 0);
39
+ __decorate([
40
+ (0, typeorm_1.Column)({ type: 'varchar', length: 36 }),
41
+ __metadata("design:type", String)
42
+ ], ChatMessage.prototype, "threadId", void 0);
43
+ __decorate([
44
+ (0, typeorm_1.Column)({ type: 'varchar', length: 36, nullable: true }),
45
+ __metadata("design:type", Object)
46
+ ], ChatMessage.prototype, "characterId", void 0);
47
+ __decorate([
48
+ (0, typeorm_1.Column)({ type: 'varchar', length: 20 }),
49
+ __metadata("design:type", String)
50
+ ], ChatMessage.prototype, "role", void 0);
51
+ __decorate([
52
+ (0, typeorm_1.Column)({ type: 'text' }),
53
+ __metadata("design:type", String)
54
+ ], ChatMessage.prototype, "content", void 0);
55
+ __decorate([
56
+ (0, typeorm_1.Column)({ type: 'integer', default: 0 }),
57
+ __metadata("design:type", Number)
58
+ ], ChatMessage.prototype, "favorDelta", void 0);
59
+ __decorate([
60
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
61
+ __metadata("design:type", Object)
62
+ ], ChatMessage.prototype, "favorReason", void 0);
63
+ __decorate([
64
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, nullable: true }),
65
+ __metadata("design:type", Object)
66
+ ], ChatMessage.prototype, "sentiment", void 0);
67
+ __decorate([
68
+ (0, typeorm_1.ManyToOne)(() => chat_thread_entity_js_1.ChatThread, (thread) => thread.messages),
69
+ (0, typeorm_1.JoinColumn)({ name: 'threadId' }),
70
+ __metadata("design:type", chat_thread_entity_js_1.ChatThread)
71
+ ], ChatMessage.prototype, "thread", void 0);
72
+ __decorate([
73
+ (0, typeorm_1.ManyToOne)(() => chat_character_entity_js_1.ChatCharacter),
74
+ (0, typeorm_1.JoinColumn)({ name: 'characterId' }),
75
+ __metadata("design:type", chat_character_entity_js_1.ChatCharacter)
76
+ ], ChatMessage.prototype, "character", void 0);
77
+ __decorate([
78
+ (0, typeorm_1.CreateDateColumn)(),
79
+ __metadata("design:type", Date)
80
+ ], ChatMessage.prototype, "createdAt", void 0);
81
+ exports.ChatMessage = ChatMessage = __decorate([
82
+ (0, typeorm_1.Entity)('sk_chat_messages')
83
+ ], ChatMessage);
84
+ //# sourceMappingURL=chat-message.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-message.entity.js","sourceRoot":"","sources":["../../src/entities/chat-message.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAOiB;AACjB,mEAAqD;AACrD,yEAA2D;AASpD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEtB,EAAE,CAAU;IAGZ,QAAQ,CAAU;IAGlB,WAAW,CAAiB;IAE5B,WAAW;IAEX,IAAI,CAAe;IAEnB,WAAW;IAEX,OAAO,CAAU;IAEjB,wBAAwB;IAExB,UAAU,CAAU;IAEpB,cAAc;IAEd,WAAW,CAAiB;IAE5B,aAAa;IAEb,SAAS,CAAiB;IAI1B,MAAM,CAAc;IAIpB,SAAS,CAAiB;IAG1B,SAAS,CAAQ;CAClB,CAAA;AAxCY,kCAAW;AAEtB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;uCACnB;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;6CACtB;AAGlB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC5B;AAI5B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;yCACrB;AAInB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4CACR;AAIjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;+CACpB;AAIpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC7B;AAI5B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;8CAC9B;AAI1B;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kCAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;IACxD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACxB,kCAAU;2CAAC;AAIpB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wCAAa,CAAC;IAC9B,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BACxB,wCAAa;8CAAC;AAG1B;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;8CAAC;sBAvCN,WAAW;IADvB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,WAAW,CAwCvB"}
@@ -0,0 +1,31 @@
1
+ import { ChatThread } from './chat-thread.entity.js';
2
+ import { CrisisEvent } from './crisis-event.entity.js';
3
+ /**
4
+ * 海王训练会话:一次完整的多线聊天模拟
5
+ * 🌊 同时和N个人聊天,你准备好了吗?
6
+ */
7
+ export type SessionStatus = 'active' | 'completed' | 'failed' | 'abandoned';
8
+ export declare class ChatSession {
9
+ id: string;
10
+ /** 用户ID */
11
+ userId: string;
12
+ /** 会话状态 */
13
+ status: SessionStatus;
14
+ /** 同时聊天的角色数量 */
15
+ characterCount: number;
16
+ /** 总好感度得分 */
17
+ totalFavorScore: number;
18
+ /** 已触发的紧急事件数 */
19
+ crisisCount: number;
20
+ /** 会话总时长(秒) */
21
+ durationSeconds: number;
22
+ /** 当前段位 */
23
+ rank: string;
24
+ /** 会话总结/分析 */
25
+ summary: string | null;
26
+ threads: ChatThread[];
27
+ crises: CrisisEvent[];
28
+ createdAt: Date;
29
+ updatedAt: Date;
30
+ }
31
+ //# sourceMappingURL=chat-session.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-session.entity.d.ts","sourceRoot":"","sources":["../../src/entities/chat-session.entity.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE5E,qBACa,WAAW;IAEtB,EAAE,EAAG,MAAM,CAAC;IAEZ,WAAW;IAEX,MAAM,EAAG,MAAM,CAAC;IAEhB,WAAW;IAEX,MAAM,EAAG,aAAa,CAAC;IAEvB,gBAAgB;IAEhB,cAAc,EAAG,MAAM,CAAC;IAExB,aAAa;IAEb,eAAe,EAAG,MAAM,CAAC;IAEzB,gBAAgB;IAEhB,WAAW,EAAG,MAAM,CAAC;IAErB,eAAe;IAEf,eAAe,EAAG,MAAM,CAAC;IAEzB,WAAW;IAEX,IAAI,EAAG,MAAM,CAAC;IAEd,cAAc;IAEd,OAAO,EAAG,MAAM,GAAG,IAAI,CAAC;IAGxB,OAAO,EAAG,UAAU,EAAE,CAAC;IAGvB,MAAM,EAAG,WAAW,EAAE,CAAC;IAGvB,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;CAClB"}
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ChatSession = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const chat_thread_entity_js_1 = require("./chat-thread.entity.js");
15
+ const crisis_event_entity_js_1 = require("./crisis-event.entity.js");
16
+ let ChatSession = class ChatSession {
17
+ id;
18
+ /** 用户ID */
19
+ userId;
20
+ /** 会话状态 */
21
+ status;
22
+ /** 同时聊天的角色数量 */
23
+ characterCount;
24
+ /** 总好感度得分 */
25
+ totalFavorScore;
26
+ /** 已触发的紧急事件数 */
27
+ crisisCount;
28
+ /** 会话总时长(秒) */
29
+ durationSeconds;
30
+ /** 当前段位 */
31
+ rank;
32
+ /** 会话总结/分析 */
33
+ summary;
34
+ threads;
35
+ crises;
36
+ createdAt;
37
+ updatedAt;
38
+ };
39
+ exports.ChatSession = ChatSession;
40
+ __decorate([
41
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
42
+ __metadata("design:type", String)
43
+ ], ChatSession.prototype, "id", void 0);
44
+ __decorate([
45
+ (0, typeorm_1.Column)({ type: 'varchar', length: 100, default: 'anonymous' }),
46
+ __metadata("design:type", String)
47
+ ], ChatSession.prototype, "userId", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.Column)({ type: 'varchar', length: 20, default: 'active' }),
50
+ __metadata("design:type", String)
51
+ ], ChatSession.prototype, "status", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.Column)({ type: 'integer', default: 3 }),
54
+ __metadata("design:type", Number)
55
+ ], ChatSession.prototype, "characterCount", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.Column)({ type: 'integer', default: 0 }),
58
+ __metadata("design:type", Number)
59
+ ], ChatSession.prototype, "totalFavorScore", void 0);
60
+ __decorate([
61
+ (0, typeorm_1.Column)({ type: 'integer', default: 0 }),
62
+ __metadata("design:type", Number)
63
+ ], ChatSession.prototype, "crisisCount", void 0);
64
+ __decorate([
65
+ (0, typeorm_1.Column)({ type: 'integer', default: 0 }),
66
+ __metadata("design:type", Number)
67
+ ], ChatSession.prototype, "durationSeconds", void 0);
68
+ __decorate([
69
+ (0, typeorm_1.Column)({ type: 'varchar', length: 50, default: 'bronze' }),
70
+ __metadata("design:type", String)
71
+ ], ChatSession.prototype, "rank", void 0);
72
+ __decorate([
73
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
74
+ __metadata("design:type", Object)
75
+ ], ChatSession.prototype, "summary", void 0);
76
+ __decorate([
77
+ (0, typeorm_1.OneToMany)(() => chat_thread_entity_js_1.ChatThread, (thread) => thread.session, { cascade: true }),
78
+ __metadata("design:type", Array)
79
+ ], ChatSession.prototype, "threads", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.OneToMany)(() => crisis_event_entity_js_1.CrisisEvent, (crisis) => crisis.session, { cascade: true }),
82
+ __metadata("design:type", Array)
83
+ ], ChatSession.prototype, "crises", void 0);
84
+ __decorate([
85
+ (0, typeorm_1.CreateDateColumn)(),
86
+ __metadata("design:type", Date)
87
+ ], ChatSession.prototype, "createdAt", void 0);
88
+ __decorate([
89
+ (0, typeorm_1.UpdateDateColumn)(),
90
+ __metadata("design:type", Date)
91
+ ], ChatSession.prototype, "updatedAt", void 0);
92
+ exports.ChatSession = ChatSession = __decorate([
93
+ (0, typeorm_1.Entity)('sk_chat_sessions')
94
+ ], ChatSession);
95
+ //# sourceMappingURL=chat-session.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-session.entity.js","sourceRoot":"","sources":["../../src/entities/chat-session.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAOiB;AACjB,mEAAqD;AACrD,qEAAuD;AAShD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEtB,EAAE,CAAU;IAEZ,WAAW;IAEX,MAAM,CAAU;IAEhB,WAAW;IAEX,MAAM,CAAiB;IAEvB,gBAAgB;IAEhB,cAAc,CAAU;IAExB,aAAa;IAEb,eAAe,CAAU;IAEzB,gBAAgB;IAEhB,WAAW,CAAU;IAErB,eAAe;IAEf,eAAe,CAAU;IAEzB,WAAW;IAEX,IAAI,CAAU;IAEd,cAAc;IAEd,OAAO,CAAiB;IAGxB,OAAO,CAAgB;IAGvB,MAAM,CAAiB;IAGvB,SAAS,CAAQ;IAGjB,SAAS,CAAQ;CAClB,CAAA;AA/CY,kCAAW;AAEtB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;uCACnB;AAIZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;;2CAC/C;AAIhB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;2CACpC;AAIvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;mDAChB;AAIxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;oDACf;AAIzB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;gDACnB;AAIrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;oDACf;AAIzB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;yCAC7C;AAId;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;4CACjB;AAGxB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kCAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;4CACpD;AAGvB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,oCAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACrD;AAGvB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;8CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;8CAAC;sBA9CN,WAAW;IADvB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,WAAW,CA+CvB"}
@@ -0,0 +1,30 @@
1
+ import { ChatSession } from './chat-session.entity.js';
2
+ import { ChatCharacter } from './chat-character.entity.js';
3
+ import { ChatMessage } from './chat-message.entity.js';
4
+ /**
5
+ * 聊天线程:和某个角色的一条聊天线
6
+ * 💬 每一条线都要维护好哦,掉了就回不来了!
7
+ */
8
+ export declare class ChatThread {
9
+ id: string;
10
+ sessionId: string;
11
+ characterId: string;
12
+ /** 当前好感度(0-100) */
13
+ favorability: number;
14
+ /** 好感度变化历史(JSON数组) */
15
+ favorHistory: string;
16
+ /** 聊天状态:active=正在聊, cooling=冷却中, broken=被拉黑了 */
17
+ threadStatus: string;
18
+ /** 未读消息数(角色等你回复) */
19
+ unreadCount: number;
20
+ /** 最后一条消息预览 */
21
+ lastMessage: string | null;
22
+ /** 最后活跃时间 */
23
+ lastActiveAt: Date | null;
24
+ session: ChatSession;
25
+ character: ChatCharacter;
26
+ messages: ChatMessage[];
27
+ createdAt: Date;
28
+ updatedAt: Date;
29
+ }
30
+ //# sourceMappingURL=chat-thread.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-thread.entity.d.ts","sourceRoot":"","sources":["../../src/entities/chat-thread.entity.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;GAGG;AACH,qBACa,UAAU;IAErB,EAAE,EAAG,MAAM,CAAC;IAGZ,SAAS,EAAG,MAAM,CAAC;IAGnB,WAAW,EAAG,MAAM,CAAC;IAErB,mBAAmB;IAEnB,YAAY,EAAG,MAAM,CAAC;IAEtB,sBAAsB;IAEtB,YAAY,EAAG,MAAM,CAAC;IAEtB,gDAAgD;IAEhD,YAAY,EAAG,MAAM,CAAC;IAEtB,oBAAoB;IAEpB,WAAW,EAAG,MAAM,CAAC;IAErB,eAAe;IAEf,WAAW,EAAG,MAAM,GAAG,IAAI,CAAC;IAE5B,aAAa;IAEb,YAAY,EAAG,IAAI,GAAG,IAAI,CAAC;IAI3B,OAAO,EAAG,WAAW,CAAC;IAItB,SAAS,EAAG,aAAa,CAAC;IAG1B,QAAQ,EAAG,WAAW,EAAE,CAAC;IAGzB,SAAS,EAAG,IAAI,CAAC;IAGjB,SAAS,EAAG,IAAI,CAAC;CAClB"}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ChatThread = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const chat_session_entity_js_1 = require("./chat-session.entity.js");
15
+ const chat_character_entity_js_1 = require("./chat-character.entity.js");
16
+ const chat_message_entity_js_1 = require("./chat-message.entity.js");
17
+ /**
18
+ * 聊天线程:和某个角色的一条聊天线
19
+ * 💬 每一条线都要维护好哦,掉了就回不来了!
20
+ */
21
+ let ChatThread = class ChatThread {
22
+ id;
23
+ sessionId;
24
+ characterId;
25
+ /** 当前好感度(0-100) */
26
+ favorability;
27
+ /** 好感度变化历史(JSON数组) */
28
+ favorHistory;
29
+ /** 聊天状态:active=正在聊, cooling=冷却中, broken=被拉黑了 */
30
+ threadStatus;
31
+ /** 未读消息数(角色等你回复) */
32
+ unreadCount;
33
+ /** 最后一条消息预览 */
34
+ lastMessage;
35
+ /** 最后活跃时间 */
36
+ lastActiveAt;
37
+ session;
38
+ character;
39
+ messages;
40
+ createdAt;
41
+ updatedAt;
42
+ };
43
+ exports.ChatThread = ChatThread;
44
+ __decorate([
45
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
46
+ __metadata("design:type", String)
47
+ ], ChatThread.prototype, "id", void 0);
48
+ __decorate([
49
+ (0, typeorm_1.Column)({ type: 'varchar', length: 36 }),
50
+ __metadata("design:type", String)
51
+ ], ChatThread.prototype, "sessionId", void 0);
52
+ __decorate([
53
+ (0, typeorm_1.Column)({ type: 'varchar', length: 36 }),
54
+ __metadata("design:type", String)
55
+ ], ChatThread.prototype, "characterId", void 0);
56
+ __decorate([
57
+ (0, typeorm_1.Column)({ type: 'integer', default: 50 }),
58
+ __metadata("design:type", Number)
59
+ ], ChatThread.prototype, "favorability", void 0);
60
+ __decorate([
61
+ (0, typeorm_1.Column)({ type: 'text', default: '[]' }),
62
+ __metadata("design:type", String)
63
+ ], ChatThread.prototype, "favorHistory", void 0);
64
+ __decorate([
65
+ (0, typeorm_1.Column)({ type: 'varchar', length: 20, default: 'active' }),
66
+ __metadata("design:type", String)
67
+ ], ChatThread.prototype, "threadStatus", void 0);
68
+ __decorate([
69
+ (0, typeorm_1.Column)({ type: 'integer', default: 0 }),
70
+ __metadata("design:type", Number)
71
+ ], ChatThread.prototype, "unreadCount", void 0);
72
+ __decorate([
73
+ (0, typeorm_1.Column)({ type: 'varchar', length: 500, nullable: true }),
74
+ __metadata("design:type", Object)
75
+ ], ChatThread.prototype, "lastMessage", void 0);
76
+ __decorate([
77
+ (0, typeorm_1.Column)({ type: 'datetime', nullable: true }),
78
+ __metadata("design:type", Object)
79
+ ], ChatThread.prototype, "lastActiveAt", void 0);
80
+ __decorate([
81
+ (0, typeorm_1.ManyToOne)(() => chat_session_entity_js_1.ChatSession, (session) => session.threads),
82
+ (0, typeorm_1.JoinColumn)({ name: 'sessionId' }),
83
+ __metadata("design:type", chat_session_entity_js_1.ChatSession)
84
+ ], ChatThread.prototype, "session", void 0);
85
+ __decorate([
86
+ (0, typeorm_1.ManyToOne)(() => chat_character_entity_js_1.ChatCharacter),
87
+ (0, typeorm_1.JoinColumn)({ name: 'characterId' }),
88
+ __metadata("design:type", chat_character_entity_js_1.ChatCharacter)
89
+ ], ChatThread.prototype, "character", void 0);
90
+ __decorate([
91
+ (0, typeorm_1.OneToMany)(() => chat_message_entity_js_1.ChatMessage, (msg) => msg.thread, { cascade: true }),
92
+ __metadata("design:type", Array)
93
+ ], ChatThread.prototype, "messages", void 0);
94
+ __decorate([
95
+ (0, typeorm_1.CreateDateColumn)(),
96
+ __metadata("design:type", Date)
97
+ ], ChatThread.prototype, "createdAt", void 0);
98
+ __decorate([
99
+ (0, typeorm_1.UpdateDateColumn)(),
100
+ __metadata("design:type", Date)
101
+ ], ChatThread.prototype, "updatedAt", void 0);
102
+ exports.ChatThread = ChatThread = __decorate([
103
+ (0, typeorm_1.Entity)('sk_chat_threads')
104
+ ], ChatThread);
105
+ //# sourceMappingURL=chat-thread.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-thread.entity.js","sourceRoot":"","sources":["../../src/entities/chat-thread.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCASiB;AACjB,qEAAuD;AACvD,yEAA2D;AAC3D,qEAAuD;AAEvD;;;GAGG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAU;IAErB,EAAE,CAAU;IAGZ,SAAS,CAAU;IAGnB,WAAW,CAAU;IAErB,mBAAmB;IAEnB,YAAY,CAAU;IAEtB,sBAAsB;IAEtB,YAAY,CAAU;IAEtB,gDAAgD;IAEhD,YAAY,CAAU;IAEtB,oBAAoB;IAEpB,WAAW,CAAU;IAErB,eAAe;IAEf,WAAW,CAAiB;IAE5B,aAAa;IAEb,YAAY,CAAe;IAI3B,OAAO,CAAe;IAItB,SAAS,CAAiB;IAG1B,QAAQ,CAAiB;IAGzB,SAAS,CAAQ;IAGjB,SAAS,CAAQ;CAClB,CAAA;AAlDY,gCAAU;AAErB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;sCACnB;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;6CACrB;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;+CACnB;AAIrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;gDACnB;AAItB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;gDAClB;AAItB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;gDACrC;AAItB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;;+CACnB;AAIrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;+CAC7B;AAI5B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAClB;AAI3B;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,oCAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IAC1D,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACxB,oCAAW;2CAAC;AAItB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,wCAAa,CAAC;IAC9B,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;8BACxB,wCAAa;6CAAC;AAG1B;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,oCAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;4CAC5C;AAGzB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;6CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;6CAAC;qBAjDN,UAAU;IADtB,IAAA,gBAAM,EAAC,iBAAiB,CAAC;GACb,UAAU,CAkDtB"}
@@ -0,0 +1,30 @@
1
+ import { ChatSession } from './chat-session.entity.js';
2
+ /**
3
+ * 紧急事件:考验你应变能力的突发状况
4
+ * 🚨 两个人同时约你周末?朋友圈被看到了?准备好应对了吗!
5
+ */
6
+ export type CrisisType = 'double_date' | 'seen_together' | 'same_gift' | 'wrong_name' | 'social_media_leak' | 'mutual_friend' | 'jealousy_storm' | 'surprise_encounter';
7
+ export type CrisisStatus = 'triggered' | 'resolved' | 'failed';
8
+ export declare class CrisisEvent {
9
+ id: string;
10
+ sessionId: string;
11
+ /** 事件类型 */
12
+ crisisType: CrisisType;
13
+ /** 事件描述 */
14
+ description: string;
15
+ /** 涉及的角色ID(JSON数组) */
16
+ involvedCharacterIds: string;
17
+ /** 状态 */
18
+ status: CrisisStatus;
19
+ /** 用户的应对回复 */
20
+ userResponse: string | null;
21
+ /** 处理得分(0-100) */
22
+ resolutionScore: number | null;
23
+ /** 评价反馈 */
24
+ feedback: string | null;
25
+ /** 限时(秒),0表示不限时 */
26
+ timeLimit: number;
27
+ session: ChatSession;
28
+ createdAt: Date;
29
+ }
30
+ //# sourceMappingURL=crisis-event.entity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crisis-event.entity.d.ts","sourceRoot":"","sources":["../../src/entities/crisis-event.entity.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAClB,aAAa,GACb,eAAe,GACf,WAAW,GACX,YAAY,GACZ,mBAAmB,GACnB,eAAe,GACf,gBAAgB,GAChB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/D,qBACa,WAAW;IAEtB,EAAE,EAAG,MAAM,CAAC;IAGZ,SAAS,EAAG,MAAM,CAAC;IAEnB,WAAW;IAEX,UAAU,EAAG,UAAU,CAAC;IAExB,WAAW;IAEX,WAAW,EAAG,MAAM,CAAC;IAErB,sBAAsB;IAEtB,oBAAoB,EAAG,MAAM,CAAC;IAE9B,SAAS;IAET,MAAM,EAAG,YAAY,CAAC;IAEtB,cAAc;IAEd,YAAY,EAAG,MAAM,GAAG,IAAI,CAAC;IAE7B,kBAAkB;IAElB,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;IAEhC,WAAW;IAEX,QAAQ,EAAG,MAAM,GAAG,IAAI,CAAC;IAEzB,mBAAmB;IAEnB,SAAS,EAAG,MAAM,CAAC;IAInB,OAAO,EAAG,WAAW,CAAC;IAGtB,SAAS,EAAG,IAAI,CAAC;CAClB"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CrisisEvent = void 0;
13
+ const typeorm_1 = require("typeorm");
14
+ const chat_session_entity_js_1 = require("./chat-session.entity.js");
15
+ let CrisisEvent = class CrisisEvent {
16
+ id;
17
+ sessionId;
18
+ /** 事件类型 */
19
+ crisisType;
20
+ /** 事件描述 */
21
+ description;
22
+ /** 涉及的角色ID(JSON数组) */
23
+ involvedCharacterIds;
24
+ /** 状态 */
25
+ status;
26
+ /** 用户的应对回复 */
27
+ userResponse;
28
+ /** 处理得分(0-100) */
29
+ resolutionScore;
30
+ /** 评价反馈 */
31
+ feedback;
32
+ /** 限时(秒),0表示不限时 */
33
+ timeLimit;
34
+ session;
35
+ createdAt;
36
+ };
37
+ exports.CrisisEvent = CrisisEvent;
38
+ __decorate([
39
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
40
+ __metadata("design:type", String)
41
+ ], CrisisEvent.prototype, "id", void 0);
42
+ __decorate([
43
+ (0, typeorm_1.Column)({ type: 'varchar', length: 36 }),
44
+ __metadata("design:type", String)
45
+ ], CrisisEvent.prototype, "sessionId", void 0);
46
+ __decorate([
47
+ (0, typeorm_1.Column)({ type: 'varchar', length: 30 }),
48
+ __metadata("design:type", String)
49
+ ], CrisisEvent.prototype, "crisisType", void 0);
50
+ __decorate([
51
+ (0, typeorm_1.Column)({ type: 'text' }),
52
+ __metadata("design:type", String)
53
+ ], CrisisEvent.prototype, "description", void 0);
54
+ __decorate([
55
+ (0, typeorm_1.Column)({ type: 'text' }),
56
+ __metadata("design:type", String)
57
+ ], CrisisEvent.prototype, "involvedCharacterIds", void 0);
58
+ __decorate([
59
+ (0, typeorm_1.Column)({ type: 'varchar', length: 20, default: 'triggered' }),
60
+ __metadata("design:type", String)
61
+ ], CrisisEvent.prototype, "status", void 0);
62
+ __decorate([
63
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
64
+ __metadata("design:type", Object)
65
+ ], CrisisEvent.prototype, "userResponse", void 0);
66
+ __decorate([
67
+ (0, typeorm_1.Column)({ type: 'integer', nullable: true }),
68
+ __metadata("design:type", Object)
69
+ ], CrisisEvent.prototype, "resolutionScore", void 0);
70
+ __decorate([
71
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
72
+ __metadata("design:type", Object)
73
+ ], CrisisEvent.prototype, "feedback", void 0);
74
+ __decorate([
75
+ (0, typeorm_1.Column)({ type: 'integer', default: 60 }),
76
+ __metadata("design:type", Number)
77
+ ], CrisisEvent.prototype, "timeLimit", void 0);
78
+ __decorate([
79
+ (0, typeorm_1.ManyToOne)(() => chat_session_entity_js_1.ChatSession, (session) => session.crises),
80
+ (0, typeorm_1.JoinColumn)({ name: 'sessionId' }),
81
+ __metadata("design:type", chat_session_entity_js_1.ChatSession)
82
+ ], CrisisEvent.prototype, "session", void 0);
83
+ __decorate([
84
+ (0, typeorm_1.CreateDateColumn)(),
85
+ __metadata("design:type", Date)
86
+ ], CrisisEvent.prototype, "createdAt", void 0);
87
+ exports.CrisisEvent = CrisisEvent = __decorate([
88
+ (0, typeorm_1.Entity)('sk_crisis_events')
89
+ ], CrisisEvent);
90
+ //# sourceMappingURL=crisis-event.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crisis-event.entity.js","sourceRoot":"","sources":["../../src/entities/crisis-event.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAOiB;AACjB,qEAAuD;AAmBhD,IAAM,WAAW,GAAjB,MAAM,WAAW;IAEtB,EAAE,CAAU;IAGZ,SAAS,CAAU;IAEnB,WAAW;IAEX,UAAU,CAAc;IAExB,WAAW;IAEX,WAAW,CAAU;IAErB,sBAAsB;IAEtB,oBAAoB,CAAU;IAE9B,SAAS;IAET,MAAM,CAAgB;IAEtB,cAAc;IAEd,YAAY,CAAiB;IAE7B,kBAAkB;IAElB,eAAe,CAAiB;IAEhC,WAAW;IAEX,QAAQ,CAAiB;IAEzB,mBAAmB;IAEnB,SAAS,CAAU;IAInB,OAAO,CAAe;IAGtB,SAAS,CAAQ;CAClB,CAAA;AA7CY,kCAAW;AAEtB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;uCACnB;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;8CACrB;AAInB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;;+CAChB;AAIxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;gDACJ;AAIrB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;yDACK;AAI9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;;2CACxC;AAItB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDACZ;AAI7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;oDACZ;AAIhC;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAChB;AAIzB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;;8CACtB;AAInB;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,oCAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;IACzD,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;8BACxB,oCAAW;4CAAC;AAGtB;IADC,IAAA,0BAAgB,GAAE;8BACP,IAAI;8CAAC;sBA5CN,WAAW;IADvB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,WAAW,CA6CvB"}
@@ -0,0 +1,38 @@
1
+ export { ChatCharacter } from './chat-character.entity.js';
2
+ export type { CharacterPersonality, CharacterGender } from './chat-character.entity.js';
3
+ export { ChatSession } from './chat-session.entity.js';
4
+ export type { SessionStatus } from './chat-session.entity.js';
5
+ export { ChatThread } from './chat-thread.entity.js';
6
+ export { ChatMessage } from './chat-message.entity.js';
7
+ export type { MessageRole } from './chat-message.entity.js';
8
+ export { CrisisEvent } from './crisis-event.entity.js';
9
+ export type { CrisisType, CrisisStatus } from './crisis-event.entity.js';
10
+ export { PlayerProfile } from './player-profile.entity.js';
11
+ export type { PlayerRank } from './player-profile.entity.js';
12
+ export { PhraseTemplate } from './phrase-template.entity.js';
13
+ export type { PhraseScene } from './phrase-template.entity.js';
14
+ export { LeaderboardEntry } from './leaderboard-entry.entity.js';
15
+ export { MatchRoom } from './match-room.entity.js';
16
+ export type { RoomStatus, RoomMode } from './match-room.entity.js';
17
+ export { LiveThread } from './live-thread.entity.js';
18
+ export type { ParticipantType, LiveThreadStatus } from './live-thread.entity.js';
19
+ export { LiveMessage } from './live-message.entity.js';
20
+ export type { LiveMessageSource } from './live-message.entity.js';
21
+ export { PlayerQueue } from './player-queue.entity.js';
22
+ export type { QueueStatus } from './player-queue.entity.js';
23
+ export { TuringGuess } from './turing-guess.entity.js';
24
+ import { ChatCharacter } from './chat-character.entity.js';
25
+ import { ChatSession } from './chat-session.entity.js';
26
+ import { ChatThread } from './chat-thread.entity.js';
27
+ import { ChatMessage } from './chat-message.entity.js';
28
+ import { CrisisEvent } from './crisis-event.entity.js';
29
+ import { PlayerProfile } from './player-profile.entity.js';
30
+ import { PhraseTemplate } from './phrase-template.entity.js';
31
+ import { LeaderboardEntry } from './leaderboard-entry.entity.js';
32
+ import { MatchRoom } from './match-room.entity.js';
33
+ import { LiveThread } from './live-thread.entity.js';
34
+ import { LiveMessage } from './live-message.entity.js';
35
+ import { PlayerQueue } from './player-queue.entity.js';
36
+ import { TuringGuess } from './turing-guess.entity.js';
37
+ export declare const SEA_KING_ENTITIES: readonly [typeof ChatCharacter, typeof ChatSession, typeof ChatThread, typeof ChatMessage, typeof CrisisEvent, typeof PlayerProfile, typeof PhraseTemplate, typeof LeaderboardEntry, typeof MatchRoom, typeof LiveThread, typeof LiveMessage, typeof PlayerQueue, typeof TuringGuess];
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AACxF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,eAAO,MAAM,iBAAiB,uRAgBpB,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SEA_KING_ENTITIES = exports.TuringGuess = exports.PlayerQueue = exports.LiveMessage = exports.LiveThread = exports.MatchRoom = exports.LeaderboardEntry = exports.PhraseTemplate = exports.PlayerProfile = exports.CrisisEvent = exports.ChatMessage = exports.ChatThread = exports.ChatSession = exports.ChatCharacter = void 0;
4
+ // ─── Solo Mode Entities ─────────────────────────────────────────────────────
5
+ var chat_character_entity_js_1 = require("./chat-character.entity.js");
6
+ Object.defineProperty(exports, "ChatCharacter", { enumerable: true, get: function () { return chat_character_entity_js_1.ChatCharacter; } });
7
+ var chat_session_entity_js_1 = require("./chat-session.entity.js");
8
+ Object.defineProperty(exports, "ChatSession", { enumerable: true, get: function () { return chat_session_entity_js_1.ChatSession; } });
9
+ var chat_thread_entity_js_1 = require("./chat-thread.entity.js");
10
+ Object.defineProperty(exports, "ChatThread", { enumerable: true, get: function () { return chat_thread_entity_js_1.ChatThread; } });
11
+ var chat_message_entity_js_1 = require("./chat-message.entity.js");
12
+ Object.defineProperty(exports, "ChatMessage", { enumerable: true, get: function () { return chat_message_entity_js_1.ChatMessage; } });
13
+ var crisis_event_entity_js_1 = require("./crisis-event.entity.js");
14
+ Object.defineProperty(exports, "CrisisEvent", { enumerable: true, get: function () { return crisis_event_entity_js_1.CrisisEvent; } });
15
+ var player_profile_entity_js_1 = require("./player-profile.entity.js");
16
+ Object.defineProperty(exports, "PlayerProfile", { enumerable: true, get: function () { return player_profile_entity_js_1.PlayerProfile; } });
17
+ var phrase_template_entity_js_1 = require("./phrase-template.entity.js");
18
+ Object.defineProperty(exports, "PhraseTemplate", { enumerable: true, get: function () { return phrase_template_entity_js_1.PhraseTemplate; } });
19
+ var leaderboard_entry_entity_js_1 = require("./leaderboard-entry.entity.js");
20
+ Object.defineProperty(exports, "LeaderboardEntry", { enumerable: true, get: function () { return leaderboard_entry_entity_js_1.LeaderboardEntry; } });
21
+ // ─── Live Mode Entities (真人混战) ──────────────────────────────────────────
22
+ var match_room_entity_js_1 = require("./match-room.entity.js");
23
+ Object.defineProperty(exports, "MatchRoom", { enumerable: true, get: function () { return match_room_entity_js_1.MatchRoom; } });
24
+ var live_thread_entity_js_1 = require("./live-thread.entity.js");
25
+ Object.defineProperty(exports, "LiveThread", { enumerable: true, get: function () { return live_thread_entity_js_1.LiveThread; } });
26
+ var live_message_entity_js_1 = require("./live-message.entity.js");
27
+ Object.defineProperty(exports, "LiveMessage", { enumerable: true, get: function () { return live_message_entity_js_1.LiveMessage; } });
28
+ var player_queue_entity_js_1 = require("./player-queue.entity.js");
29
+ Object.defineProperty(exports, "PlayerQueue", { enumerable: true, get: function () { return player_queue_entity_js_1.PlayerQueue; } });
30
+ var turing_guess_entity_js_1 = require("./turing-guess.entity.js");
31
+ Object.defineProperty(exports, "TuringGuess", { enumerable: true, get: function () { return turing_guess_entity_js_1.TuringGuess; } });
32
+ const chat_character_entity_js_2 = require("./chat-character.entity.js");
33
+ const chat_session_entity_js_2 = require("./chat-session.entity.js");
34
+ const chat_thread_entity_js_2 = require("./chat-thread.entity.js");
35
+ const chat_message_entity_js_2 = require("./chat-message.entity.js");
36
+ const crisis_event_entity_js_2 = require("./crisis-event.entity.js");
37
+ const player_profile_entity_js_2 = require("./player-profile.entity.js");
38
+ const phrase_template_entity_js_2 = require("./phrase-template.entity.js");
39
+ const leaderboard_entry_entity_js_2 = require("./leaderboard-entry.entity.js");
40
+ const match_room_entity_js_2 = require("./match-room.entity.js");
41
+ const live_thread_entity_js_2 = require("./live-thread.entity.js");
42
+ const live_message_entity_js_2 = require("./live-message.entity.js");
43
+ const player_queue_entity_js_2 = require("./player-queue.entity.js");
44
+ const turing_guess_entity_js_2 = require("./turing-guess.entity.js");
45
+ exports.SEA_KING_ENTITIES = [
46
+ // Solo
47
+ chat_character_entity_js_2.ChatCharacter,
48
+ chat_session_entity_js_2.ChatSession,
49
+ chat_thread_entity_js_2.ChatThread,
50
+ chat_message_entity_js_2.ChatMessage,
51
+ crisis_event_entity_js_2.CrisisEvent,
52
+ player_profile_entity_js_2.PlayerProfile,
53
+ phrase_template_entity_js_2.PhraseTemplate,
54
+ leaderboard_entry_entity_js_2.LeaderboardEntry,
55
+ // Live
56
+ match_room_entity_js_2.MatchRoom,
57
+ live_thread_entity_js_2.LiveThread,
58
+ live_message_entity_js_2.LiveMessage,
59
+ player_queue_entity_js_2.PlayerQueue,
60
+ turing_guess_entity_js_2.TuringGuess,
61
+ ];
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;AAAA,+EAA+E;AAC/E,uEAA2D;AAAlD,yHAAA,aAAa,OAAA;AAEtB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAEpB,iEAAqD;AAA5C,mHAAA,UAAU,OAAA;AACnB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAEpB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAEpB,uEAA2D;AAAlD,yHAAA,aAAa,OAAA;AAEtB,yEAA6D;AAApD,2HAAA,cAAc,OAAA;AAEvB,6EAAiE;AAAxD,+HAAA,gBAAgB,OAAA;AAEzB,2EAA2E;AAC3E,+DAAmD;AAA1C,iHAAA,SAAS,OAAA;AAElB,iEAAqD;AAA5C,mHAAA,UAAU,OAAA;AAEnB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAEpB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAEpB,mEAAuD;AAA9C,qHAAA,WAAW,OAAA;AAEpB,yEAA2D;AAC3D,qEAAuD;AACvD,mEAAqD;AACrD,qEAAuD;AACvD,qEAAuD;AACvD,yEAA2D;AAC3D,2EAA6D;AAC7D,+EAAiE;AACjE,iEAAmD;AACnD,mEAAqD;AACrD,qEAAuD;AACvD,qEAAuD;AACvD,qEAAuD;AAE1C,QAAA,iBAAiB,GAAG;IAC/B,OAAO;IACP,wCAAa;IACb,oCAAW;IACX,kCAAU;IACV,oCAAW;IACX,oCAAW;IACX,wCAAa;IACb,0CAAc;IACd,8CAAgB;IAChB,OAAO;IACP,gCAAS;IACT,kCAAU;IACV,oCAAW;IACX,oCAAW;IACX,oCAAW;CACH,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * 排行榜条目
3
+ * 🏆 看看谁才是真正的海王/海后!
4
+ */
5
+ export declare class LeaderboardEntry {
6
+ id: string;
7
+ userId: string;
8
+ /** 显示名称 */
9
+ displayName: string;
10
+ /** 总好感度得分 */
11
+ totalScore: number;
12
+ /** 段位 */
13
+ rank: string;
14
+ /** 最高同时聊天数 */
15
+ maxConcurrentChats: number;
16
+ /** 危机处理成功率 */
17
+ crisisSuccessRate: number;
18
+ /** 赛季标识 */
19
+ season: string;
20
+ createdAt: Date;
21
+ }
22
+ //# sourceMappingURL=leaderboard-entry.entity.d.ts.map