| 12345678910111213141516171819202122232425262728293031323334 |
- """
- 用户模型
- """
- from sqlalchemy import Column, Integer, String, Boolean, DateTime, JSON
- from sqlalchemy.orm import relationship
- from sqlalchemy.sql import func
- from app.core.database import Base
- class User(Base):
- """用户表"""
- __tablename__ = "users"
- id = Column(Integer, primary_key=True, index=True)
- username = Column(String(50), unique=True, nullable=False, index=True)
- email = Column(String(100), unique=True, nullable=False, index=True)
- password_hash = Column(String(255), nullable=False)
- avatar_url = Column(String(500))
- # API Key配置(加密存储)
- encrypted_api_keys = Column(JSON, default={})
- # 国际化配置
- timezone = Column(String(50), default="UTC")
- preferred_language = Column(String(10), default="en")
- # 状态
- is_active = Column(Boolean, default=True)
- created_at = Column(DateTime(timezone=True), server_default=func.now())
- updated_at = Column(DateTime(timezone=True), onupdate=func.now())
- # 关系
- characters = relationship("Character", back_populates="user", cascade="all, delete-orphan")
- conversations = relationship("Conversation", back_populates="user", cascade="all, delete-orphan")
|