Files
wecom_it_smart_desk/backend/app/models/meetingroom_guide.py
T

60 lines
2.7 KiB
Python
Raw Normal View History

# =============================================================================
# 企微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"<MeetingroomGuide(id={self.id}, category='{self.category}', title='{self.title}')>"