deliveryman-api/app/models/message.py
2025-01-23 12:32:10 +08:00

37 lines
1.3 KiB
Python

from datetime import datetime
from sqlalchemy import Column, Integer, String, Boolean, DateTime, Text, ForeignKey
from sqlalchemy.sql import func
from pydantic import BaseModel
from typing import Optional
from app.models.database import Base
class MessageDB(Base):
"""消息数据库模型"""
__tablename__ = "messages"
id = Column(Integer, primary_key=True, index=True)
user_id = Column(String(32), index=True, nullable=False, comment="用户ID")
content = Column(Text, nullable=False, comment="消息内容")
is_read = Column(Boolean, default=False, comment="是否已读")
url = Column(String(255), nullable=True, comment="跳转链接")
create_time = Column(DateTime(timezone=True), server_default=func.now(), comment="创建时间")
update_time = Column(DateTime(timezone=True), onupdate=func.now(), comment="更新时间")
class MessageCreate(BaseModel):
"""创建消息请求模型"""
user_id: str
content: str
url: Optional[str] = None
class MessageInfo(BaseModel):
"""消息信息响应模型"""
id: int
user_id: str
content: str
is_read: bool
url: Optional[str] = None
create_time: datetime
update_time: Optional[datetime] = None
class Config:
from_attributes = True