由于本次代码变更内容为空,无法生成有效的提交信息。请提供具体的代码变更内容以便生成合适的提交信息。登录、微信登录等认证功能- 添加管理员登录功能
- 实现个人资料更新和密码修改- 配置数据库连接和 Alembic 迁移 - 添加健康检查和系统统计接口 - 实现自定义错误处理和响应格式 - 配置 FastAPI 应用和中间件
This commit is contained in:
44
fastapi-backend/app/models/user.py
Normal file
44
fastapi-backend/app/models/user.py
Normal file
@@ -0,0 +1,44 @@
|
||||
from datetime import datetime
|
||||
from sqlalchemy import Boolean, Column, String, Integer, DateTime, Enum
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
from app.db.session import Base
|
||||
|
||||
|
||||
class User(Base):
|
||||
__tablename__ = "users"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
username = Column(String(50), unique=True, index=True, nullable=False)
|
||||
password_hash = Column(String(255), nullable=False)
|
||||
user_type = Column(Enum('farmer', 'merchant', 'admin', 'super_admin'), default='farmer')
|
||||
real_name = Column(String(50))
|
||||
nickname = Column(String(50))
|
||||
avatar_url = Column(String(255))
|
||||
email = Column(String(100), unique=True, index=True)
|
||||
phone = Column(String(20), unique=True, index=True)
|
||||
gender = Column(Enum('male', 'female', 'other'), default='other')
|
||||
birthday = Column(DateTime)
|
||||
status = Column(Enum('active', 'inactive'), default='active')
|
||||
wechat_openid = Column(String(100), unique=True, index=True)
|
||||
wechat_unionid = Column(String(100), unique=True, index=True)
|
||||
level = Column(Integer, default=1)
|
||||
created_at = Column(DateTime, default=func.now())
|
||||
updated_at = Column(DateTime, default=func.now(), onupdate=func.now())
|
||||
last_login = Column(DateTime)
|
||||
|
||||
|
||||
class Admin(Base):
|
||||
__tablename__ = "admins"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
username = Column(String(50), unique=True, index=True, nullable=False)
|
||||
password = Column(String(255), nullable=False)
|
||||
email = Column(String(100), unique=True, index=True)
|
||||
nickname = Column(String(50))
|
||||
avatar = Column(String(255))
|
||||
role = Column(Enum('admin', 'super_admin'), default='admin')
|
||||
status = Column(Enum('active', 'inactive'), default='active')
|
||||
last_login = Column(DateTime)
|
||||
created_at = Column(DateTime, default=func.now())
|
||||
updated_at = Column(DateTime, default=func.now(), onupdate=func.now())
|
||||
Reference in New Issue
Block a user