25 lines
1.5 KiB
Python
25 lines
1.5 KiB
Python
from dataclasses import dataclass
|
|
from datetime import datetime
|
|
from typing import Optional
|
|
|
|
from sqlalchemy import Column, String, Boolean, DateTime, BigInteger, text, INT
|
|
from database.database import Base
|
|
|
|
@dataclass
|
|
class TNews(Base):
|
|
__tablename__ = 't_news'
|
|
|
|
id: int = Column(BigInteger, primary_key=True, autoincrement=True, comment='编号')
|
|
title: Optional[str] = Column(String, nullable=True, comment='标题')
|
|
summary: Optional[str] = Column(String, nullable=True, comment='摘要')
|
|
url: Optional[str] = Column(String, nullable=True, comment='链接')
|
|
content: Optional[str] = Column(String, nullable=True, comment='内容/正文')
|
|
occurrence_date: Optional[datetime] = Column(DateTime(timezone=True), nullable=True, comment='发布日期')
|
|
source: Optional[str] = Column(String, nullable=True, comment='来源')
|
|
primary_category: str = Column(String, nullable=True, comment='一级类别')
|
|
secondary_category: str = Column(String, nullable=True, comment='二级类别')
|
|
tertiary_category: str = Column(String, nullable=True, comment='三级类别')
|
|
label: str = Column(String, nullable=True, comment='标签')
|
|
lang: str = Column(String, nullable=False, default='zh', comment='语言')
|
|
is_usage: bool = Column(Boolean, nullable=False, default=False, server_default=text('false'), comment='是否已用')
|
|
create_time: datetime = Column(DateTime(timezone=True), nullable=False, server_default=text('now()'), comment='创建日期') |