""" 「关于本站」内容管理。 单条记录表 (id=1): - 用于站点"关于"页面:自我介绍、备案号、联系方式、捐赠等。 - 不限制多份:单条表单就能维护全部内容,幂等 upsert。 设计原则: - 内容字段全可空(除 id),发布前可以临时空着。 - Markdown 字段长度无限制,存原始文本,渲染时由前端解析。 """ import datetime from applications.extensions import db class About(db.Model): __tablename__ = 'site_about' id = db.Column(db.Integer, primary_key=True, autoincrement=True, comment='主键') # 站点名称(公开页头部) site_name = db.Column(db.String(120), default='', comment='站点名') # 自我介绍 / 关于(Markdown 格式,前台渲染) content_md = db.Column(db.Text, default='', comment='关于本站正文 (Markdown)') # 备案信息 icp = db.Column(db.String(120), default='', comment='ICP 备案号') # 联系信息(任选) contact_email = db.Column(db.String(120), default='', comment='联系邮箱') contact_qq = db.Column(db.String(32), default='', comment='联系 QQ') contact_wechat = db.Column(db.String(120), default='', comment='微信号') contact_telegram = db.Column(db.String(120), default='', comment='Telegram') contact_github = db.Column(db.String(255), default='', comment='GitHub 链接') # 捐赠 / 打赏 URL(一般挂二维码图片) donate_url = db.Column(db.String(255), default='', comment='捐赠/打赏 URL 或二维码图片地址') create_at = db.Column(db.DateTime, default=datetime.datetime.now, comment='创建时间') update_at = db.Column( db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now, comment='更新时间', ) def to_dict(self) -> dict: return { 'id': self.id, 'site_name': self.site_name or '', 'content_md': self.content_md or '', 'icp': self.icp or '', 'contact_email': self.contact_email or '', 'contact_qq': self.contact_qq or '', 'contact_wechat': self.contact_wechat or '', 'contact_telegram': self.contact_telegram or '', 'contact_github': self.contact_github or '', 'donate_url': self.donate_url or '', 'create_at': self.create_at.strftime('%Y-%m-%d %H:%M:%S') if self.create_at else '', 'update_at': self.update_at.strftime('%Y-%m-%d %H:%M:%S') if self.update_at else '', }