package com.ipsen.medical.entity; import javax.persistence.*; import lombok.Data; import java.time.LocalDateTime; /** * 知识库实体 */ @Data @Entity @Table(name = "knowledge_bases") public class KnowledgeBase { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private String name; // 知识库名称 @Enumerated(EnumType.STRING) @Column(nullable = false) private KnowledgeType type; // 知识库类型 @Column(columnDefinition = "TEXT") private String description; // 描述 private String dataSource; // 数据源地址 private Integer priority; // 检索优先级(数字越小优先级越高) private Boolean enabled; // 是否启用 @Column(columnDefinition = "TEXT") private String configuration; // 配置信息(JSON格式) @Column(nullable = false) private LocalDateTime createdAt; private LocalDateTime updatedAt; @PrePersist protected void onCreate() { createdAt = LocalDateTime.now(); if (enabled == null) { enabled = true; } } @PreUpdate protected void onUpdate() { updatedAt = LocalDateTime.now(); } public enum KnowledgeType { INTERNAL, // 自有数据:企业研究、历史回复、文献等 PUBLIC, // 公开数据:监管机构、知网、PubMed、EMBASE等 EXTENDED // 扩展数据:疾病、药物关联等 } }