diff --git a/packages/services/conversation-service/src/domain/entities/message.entity.ts b/packages/services/conversation-service/src/domain/entities/message.entity.ts index 85192b9..d0c24ce 100644 --- a/packages/services/conversation-service/src/domain/entities/message.entity.ts +++ b/packages/services/conversation-service/src/domain/entities/message.entity.ts @@ -5,6 +5,7 @@ import { CreateDateColumn, ManyToOne, JoinColumn, + Index, } from 'typeorm'; import { ConversationEntity } from './conversation.entity'; @@ -35,11 +36,14 @@ export const MessageType = { export type MessageTypeType = (typeof MessageType)[keyof typeof MessageType]; @Entity('messages') +@Index('idx_messages_conversation_id', ['conversationId']) +@Index('idx_messages_created_at', ['createdAt']) +@Index('idx_messages_role', ['role']) export class MessageEntity { @PrimaryGeneratedColumn('uuid') id: string; - @Column({ name: 'conversation_id', type: 'uuid' }) + @Column({ name: 'conversation_id', type: 'uuid', nullable: true }) conversationId: string; @Column({ length: 20 }) @@ -56,13 +60,13 @@ export class MessageEntity { // ========== Token统计字段(与evolution-service保持一致)========== - @Column({ name: 'input_tokens', default: 0 }) + @Column({ name: 'input_tokens', nullable: true }) inputTokens: number; - @Column({ name: 'output_tokens', default: 0 }) + @Column({ name: 'output_tokens', nullable: true }) outputTokens: number; - @CreateDateColumn({ name: 'created_at' }) + @CreateDateColumn({ name: 'created_at', type: 'timestamptz', nullable: true }) createdAt: Date; @ManyToOne(() => ConversationEntity, (conversation) => conversation.messages)