| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- """系统域模型:用户、角色、菜单、操作日志"""
- import uuid
- from datetime import datetime
- from sqlalchemy import Column, DateTime, Integer, String, Text
- from app.core.database import Base
- def _uuid() -> str:
- return str(uuid.uuid4())
- class SysUser(Base):
- __tablename__ = "sys_user"
- id = Column(String(64), primary_key=True, default=_uuid)
- username = Column(String(64), nullable=False, unique=True, index=True)
- password_hash = Column(String(255), nullable=False)
- display_name = Column(String(64), nullable=False, default="")
- role_id = Column(String(64), nullable=False, index=True)
- status = Column(String(1), nullable=False, default="0") # 0启用 / 1停用
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class SysRole(Base):
- __tablename__ = "sys_role"
- id = Column(String(64), primary_key=True, default=_uuid)
- role_code = Column(String(64), nullable=False, unique=True, index=True)
- role_name = Column(String(64), nullable=False)
- remark = Column(String(255), nullable=True)
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class SysMenu(Base):
- __tablename__ = "sys_menu"
- id = Column(String(64), primary_key=True, default=_uuid)
- parent_id = Column(String(64), nullable=False, default="0", index=True)
- menu_code = Column(String(64), nullable=False, unique=True, index=True)
- menu_name = Column(String(64), nullable=False)
- path = Column(String(255), nullable=True, default="")
- menu_type = Column(String(1), nullable=False) # M目录 / C菜单 / F按钮
- sort = Column(Integer, nullable=False, default=0)
- visible = Column(String(1), nullable=False, default="1") # 1显示 / 0隐藏
- del_flag = Column(String(1), nullable=False, default="0")
- create_time = Column(DateTime, default=datetime.utcnow)
- update_time = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)
- create_by = Column(String(64), nullable=True)
- update_by = Column(String(64), nullable=True)
- class SysRoleMenu(Base):
- __tablename__ = "sys_role_menu"
- id = Column(String(64), primary_key=True, default=_uuid)
- role_id = Column(String(64), nullable=False, index=True)
- menu_id = Column(String(64), nullable=False, index=True)
- class OperLog(Base):
- __tablename__ = "oper_log"
- id = Column(String(64), primary_key=True, default=_uuid)
- user_id = Column(String(64), nullable=True, index=True)
- username = Column(String(64), nullable=True)
- module = Column(String(64), nullable=True)
- action = Column(String(64), nullable=True)
- detail = Column(Text, nullable=True)
- ip = Column(String(64), nullable=True)
- create_time = Column(DateTime, default=datetime.utcnow)
|