37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
from sqlalchemy import Column, Integer, String, Text, DateTime, Date
|
||
from datetime import datetime, timezone, date
|
||
from app.database import Base
|
||
|
||
|
||
def utcnow():
|
||
"""统一获取 UTC 时间的工厂函数"""
|
||
return datetime.now(timezone.utc)
|
||
|
||
|
||
class UserSettings(Base):
|
||
"""用户设置模型(单例,始终只有一条记录 id=1)"""
|
||
__tablename__ = "user_settings"
|
||
|
||
id = Column(Integer, primary_key=True, default=1)
|
||
|
||
# 个人信息
|
||
nickname = Column(String(50), default="爱莉希雅")
|
||
avatar = Column(Text, nullable=True)
|
||
signature = Column(String(200), nullable=True)
|
||
birthday = Column(Date, nullable=True)
|
||
email = Column(String(100), nullable=True)
|
||
|
||
# 应用信息
|
||
site_name = Column(String(50), default="爱莉希雅待办")
|
||
|
||
# 应用偏好
|
||
theme = Column(String(20), default="pink")
|
||
language = Column(String(10), default="zh-CN")
|
||
default_view = Column(String(20), default="list")
|
||
default_sort_by = Column(String(20), default="created_at")
|
||
default_sort_order = Column(String(10), default="desc")
|
||
|
||
# 时间戳
|
||
created_at = Column(DateTime, default=utcnow)
|
||
updated_at = Column(DateTime, default=utcnow, onupdate=utcnow)
|