""" 公告模型 """ from sqlalchemy import Column, Integer, String, Text, Enum, DateTime, Boolean, func from enum import Enum as PyEnum from .base import Base class AnnouncementType(PyEnum): """公告类型""" INFO = "INFO" WARNING = "WARNING" PRIZE = "PRIZE" class Announcement(Base): """公告表""" __tablename__ = "announcements" id = Column(Integer, primary_key=True, autoincrement=True, index=True) title = Column(String(255), nullable=False, comment="公告标题") content = Column(Text, nullable=False, comment="公告内容") type = Column(Enum(AnnouncementType, native_enum=True), default=AnnouncementType.INFO, comment="公告类型") is_pinned = Column(Boolean, default=False, comment="是否置顶") priority = Column(Integer, default=0, comment="优先级(数字越大优先级越高)") starts_at = Column(DateTime, comment="生效时间") expires_at = Column(DateTime, comment="过期时间") created_at = Column(DateTime, server_default=func.now(), comment="创建时间") updated_at = Column(DateTime, server_default=func.now(), onupdate=func.now(), comment="更新时间")