You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.5 KiB

# !/usr/bin/env python3
# -*- encoding : utf-8 -*-
# @Filename : menu.py
# @Software : VSCode
# @Datetime : 2021/11/08 21:50:31
# @Author : leo liu
# @Version : 1.0
# @Description : 前端菜单
"""
菜单模型
"""
from datetime import datetime
from sqlalchemy import Column, Integer, VARCHAR, ForeignKey, Table, DateTime
from sqlalchemy.orm import relationship
from sqlalchemy.sql import func
from db.base_class import Base, gen_uuid
role_menu = Table(
"nlt_rolemenu",
Base.metadata,
Column("id", Integer, unique=True, index=True, primary_key=True, autoincrement=True, comment="ID"),
Column("role_id", VARCHAR(32), ForeignKey("nlt_role.role_id"), nullable=False, primary_key=True, comment="角色id"),
Column("menu_id", VARCHAR(32), ForeignKey("nlt_menu.menu_id"), nullable=False, primary_key=True, comment="菜单id"),
Column("create_time", DateTime, default=datetime.now, server_default=func.now(), comment="创建时间")
)
class Menu(Base):
"""
菜单表
"""
__tablename__ = "nlt_menu"
menu_id = Column(VARCHAR(32), default=gen_uuid, index=True, primary_key=True, unique=True, comment="菜单id")
path = Column(VARCHAR(64), unique=True, nullable=False, comment="菜单地址")
name = Column(VARCHAR(32), unique=True, nullable=False, comment="菜单名称")
super_menu = Column(VARCHAR(64), nullable=True, comment="上级菜单id")
role = relationship("Role", backref="menus", secondary=role_menu)
__table_args__ = ({'comment': '菜单表'})