hulai-admin-api/app/models/navigation.py
刘涛 8c0a5f489d Initial commit: hulai admin API backend
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 22:01:23 +08:00

38 行
1.3 KiB
Python

from __future__ import annotations
from sqlalchemy import Column, Integer, String, ForeignKey, JSON
from sqlalchemy.orm import relationship
from app.database import Base
class NavHeader(Base):
__tablename__ = "nav_header"
id = Column(Integer, primary_key=True, autoincrement=True)
text = Column(String(100), nullable=False)
to_path = Column(String(255), nullable=False)
children = Column(JSON) # [{text, to, season}, ...] for dropdown menus
sort_order = Column(Integer, default=0)
class NavFooterGroup(Base):
__tablename__ = "nav_footer_groups"
id = Column(Integer, primary_key=True, autoincrement=True)
title = Column(String(100), nullable=False)
sort_order = Column(Integer, default=0)
links = relationship("NavFooterLink", back_populates="group", cascade="all, delete-orphan", order_by="NavFooterLink.sort_order")
class NavFooterLink(Base):
__tablename__ = "nav_footer_links"
id = Column(Integer, primary_key=True, autoincrement=True)
group_id = Column(Integer, ForeignKey("nav_footer_groups.id", ondelete="CASCADE"), nullable=False)
text = Column(String(100), nullable=False)
to_path = Column(String(255), nullable=False)
sort_order = Column(Integer, default=0)
group = relationship("NavFooterGroup", back_populates="links")