# ============================================================================= # 企微IT智能服务台 — 会议室操作指南模型 # ============================================================================= # 说明:存储会议室设备操作指南数据 # 终端大屏展示简要步骤 + 二维码指向详细文档 # ============================================================================= from datetime import datetime from sqlalchemy import Boolean, DateTime, Integer, String, Text, func from sqlalchemy.orm import Mapped, mapped_column from app.database import Base class MeetingroomGuide(Base): """会议室操作指南模型。 按设备类型分类,每条指南包含终端大屏展示的简要说明 和二维码指向的详细文档URL。 Attributes: id: 自增主键 category: 设备类型(projector/video_conf/aircon/phone/other) title: 指南标题(如"投影仪使用指南") brief: 简要操作步骤(终端大屏展示,支持多行文本) detail_url: 详细文档URL(二维码指向的链接) icon: 图标emoji(如"📽️") sort_order: 排序序号(越小越靠前) is_active: 是否启用 created_at: 创建时间 updated_at: 更新时间 """ __tablename__ = "meetingroom_guide" # 自增主键 id: Mapped[int] = mapped_column(Integer, primary_key=True, autoincrement=True) # 设备类型分类 category: Mapped[str] = mapped_column(String(50), index=True, nullable=False, comment="设备类型") # 指南标题 title: Mapped[str] = mapped_column(String(100), nullable=False, comment="指南标题") # 简要操作步骤(终端大屏展示) brief: Mapped[str] = mapped_column(Text, nullable=False, default="", comment="简要操作步骤") # 详细文档URL(二维码指向) detail_url: Mapped[str] = mapped_column(String(500), nullable=False, default="", comment="详细文档URL") # 图标emoji icon: Mapped[str] = mapped_column(String(50), nullable=False, default="📋", comment="图标emoji") # 排序序号 sort_order: Mapped[int] = mapped_column(Integer, nullable=False, default=0, comment="排序序号") # 是否启用 is_active: Mapped[bool] = mapped_column(Boolean, nullable=False, default=True, comment="是否启用") # 创建时间 created_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now(), nullable=False) # 更新时间 updated_at: Mapped[datetime] = mapped_column(DateTime, server_default=func.now(), onupdate=func.now(), nullable=False) def __repr__(self) -> str: return f""