chore: initial baseline with P0-safety .gitignore
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# =============================================================================
|
||||
# 企微IT智能服务台 — 系统配置模型
|
||||
# =============================================================================
|
||||
# 说明:对应数据库 system_configs 表,存储系统级配置项
|
||||
# 包括:关键词列表、评分阈值、话术模板等
|
||||
# 优势:配置存在数据库中,支持后台动态修改,无需重启服务
|
||||
# =============================================================================
|
||||
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import DateTime, String, Text
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from app.database import Base
|
||||
|
||||
|
||||
class SystemConfig(Base):
|
||||
"""系统配置模型 — 对应 system_configs 表。
|
||||
|
||||
将可动态修改的配置项存储在数据库中,
|
||||
支持后台修改后立即生效,无需重启服务。
|
||||
|
||||
Attributes:
|
||||
id: 配置唯一标识(UUID,数据库自动生成)
|
||||
config_key: 配置键(唯一,如 "hand_raise_keywords")
|
||||
config_value: 配置值(JSON 字符串或纯文本)
|
||||
description: 配置说明
|
||||
updated_at: 更新时间
|
||||
"""
|
||||
|
||||
# 表名(必须和架构文档 DDL 一致)
|
||||
__tablename__ = "system_configs"
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# 字段定义
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
# 主键:UUID,Python端生成(兼容PostgreSQL和SQLite)
|
||||
id: Mapped[str] = mapped_column(
|
||||
String(36),
|
||||
primary_key=True,
|
||||
default=lambda: str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
# 配置键(唯一,用于查找配置项)
|
||||
# 示例:hand_raise_keywords, emotion_keywords_angry, polling_interval_seconds
|
||||
config_key: Mapped[str] = mapped_column(
|
||||
String(128),
|
||||
unique=True,
|
||||
nullable=False,
|
||||
comment="配置键",
|
||||
)
|
||||
|
||||
# 配置值(存储 JSON 字符串或纯文本)
|
||||
# JSON 示例:'["转人工","人工","人工服务"]'
|
||||
# 纯文本示例:'3'(表示阈值)
|
||||
config_value: Mapped[str] = mapped_column(
|
||||
Text,
|
||||
nullable=False,
|
||||
comment="配置值(JSON字符串或纯文本)",
|
||||
)
|
||||
|
||||
# 配置说明(方便管理员理解配置用途)
|
||||
description: Mapped[str] = mapped_column(
|
||||
String(256),
|
||||
nullable=False,
|
||||
default="",
|
||||
comment="配置说明",
|
||||
)
|
||||
|
||||
# 更新时间(配置修改时自动更新)
|
||||
updated_at: Mapped[datetime] = mapped_column(
|
||||
DateTime(timezone=True),
|
||||
nullable=False,
|
||||
default=datetime.now,
|
||||
onupdate=datetime.now,
|
||||
comment="更新时间",
|
||||
)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
"""配置对象的字符串表示,方便调试。"""
|
||||
return f"<SystemConfig(key={self.config_key}, value={self.config_value})>"
|
||||
Reference in New Issue
Block a user