<%
    # 对 entity 中的 name 进行大小写处理，生成模型名、路由名和模式名
    model_name = entity.name.capitalize()
    endpoint = entity.name.lower()
    router_name = endpoint + '_router'
    schema_name = model_name + 'Schema'
    # 处理实体关系
    relations = generator._process_relations(entity) if hasattr(generator, '_process_relations') else []
%>
# 导入必要的模块和类
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from typing import List

# 导入数据库会话依赖和相关模型、模式
from ..database import get_db
from ..models.${endpoint} import ${model_name}
from ..schemas.${endpoint} import ${schema_name}, ${model_name}Create, ${model_name}Update

# 创建 APIRouter 实例
${router_name} = APIRouter(
    prefix="/api/${endpoint}s",
    tags=["${model_name}管理"],
    # 根据配置添加依赖项
    % if hasattr(entity, 'api') and hasattr(entity.api, 'auth_required') and entity.api.auth_required:
    dependencies=[Depends(get_current_active_user)],
    % endif
)

# 定义获取实体列表的路由
@${router_name}.get("/", response_model=List[${schema_name}])
def list_${endpoint}s(
    skip: int = 0, 
    limit: int = 100,
    db: Session = Depends(get_db)
):
    """
    获取${model_name}列表
    - **skip**: 跳过多少条记录
    - **limit**: 返回最多多少条记录
    """
    return db.query(${model_name}).offset(skip).limit(limit).all()

# 定义创建新实体的路由
@${router_name}.post("/", response_model=${schema_name})
def create_${endpoint}(
    ${endpoint}: ${model_name}Create,
    db: Session = Depends(get_db)
    % if hasattr(entity, 'api') and hasattr(entity.api, 'auth_required') and entity.api.auth_required:
    , current_user: User = Depends(get_current_active_user)
    % endif
):
    """
    创建新的${model_name}
    """
    db_${endpoint} = ${model_name}(**${endpoint}.dict())
    db.add(db_${endpoint})
    db.commit()
    db.refresh(db_${endpoint})
    return db_${endpoint}

# 其他 CRUD 操作...

% for rel in relations:
# 定义获取实体关联关系的路由
@${router_name}.get(
    "/{${endpoint}_id}/${rel['name']}",
    response_model=
    % if rel['type'] in ('one-to-many', 'many-to-many'):
        List[${rel['target'].capitalize()}Schema]
    % else:
        ${rel['target'].capitalize()}Schema
    % endif
)
def get_${endpoint}_${rel['name']}(
    ${endpoint}_id: int,
    db: Session = Depends(get_db)
):
    """
    获取${model_name}的${rel['name']}
    """
    entity_obj = db.query(${model_name}).get(${endpoint}_id)
    if not entity_obj:
        raise HTTPException(status_code=404, detail="${model_name} not found")
    return entity_obj.${rel['name']}
% endfor    