TRM-coding | 286e678 | 2025-06-13 21:00:11 +0800 | [diff] [blame] | 1 | from . import Base |
| 2 | from sqlalchemy import Column, Integer, String, Text, Enum, TIMESTAMP |
| 3 | from sqlalchemy.sql import func |
| 4 | |
| 5 | class Topic(Base): |
| 6 | __tablename__ = 'topics' |
| 7 | __table_args__ = { |
| 8 | 'mysql_engine': 'InnoDB', |
| 9 | 'mysql_charset': 'utf8mb4', |
| 10 | 'mysql_collate': 'utf8mb4_general_ci', |
| 11 | 'comment': '话题/超话表' |
| 12 | } |
| 13 | |
| 14 | id = Column(Integer, primary_key=True, autoincrement=True, comment='话题ID') |
| 15 | name = Column(String(100, collation='utf8mb4_general_ci'), nullable=False, unique=True, comment='话题名称') |
| 16 | description = Column(Text(collation='utf8mb4_general_ci'), comment='话题描述') |
| 17 | status = Column( |
| 18 | Enum('active', 'archived', name='topic_status', collation='utf8mb4_general_ci'), |
| 19 | default='active', |
| 20 | comment='状态' |
| 21 | ) |
| 22 | created_at = Column( |
| 23 | TIMESTAMP, |
| 24 | server_default=func.current_timestamp(), |
| 25 | comment='创建时间' |
| 26 | ) |