user.routes.mt.ts 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. import { OpenAPIHono } from '@hono/zod-openapi';
  2. import { createCrudRoutes } from '@d8d/shared-crud';
  3. import { UserEntityMt } from '../entities/user.entity.mt';
  4. import { UserSchemaMt, CreateUserDtoMt, UpdateUserDtoMt } from '../schemas/user.schema.mt';
  5. import customRoutesMt from './custom.routes.mt';
  6. import { authMiddleware } from '@d8d/auth-module-mt';
  7. // 创建多租户通用CRUD路由配置
  8. const userCrudRoutesMt = createCrudRoutes({
  9. entity: UserEntityMt,
  10. createSchema: CreateUserDtoMt,
  11. updateSchema: UpdateUserDtoMt,
  12. getSchema: UserSchemaMt,
  13. listSchema: UserSchemaMt,
  14. searchFields: ['username', 'nickname', 'phone', 'email'],
  15. relations: ['roles', 'avatarFile'],
  16. middleware: [authMiddleware],
  17. readOnly: true, // 创建/更新/删除使用自定义路由
  18. tenantOptions: {
  19. enabled: true,
  20. tenantIdField: 'tenantId',
  21. autoExtractFromContext: true
  22. }
  23. });
  24. // 创建多租户混合路由应用
  25. const app = new OpenAPIHono()
  26. .route('/', customRoutesMt) // 多租户自定义业务路由
  27. .route('/', userCrudRoutesMt); // 多租户通用CRUD路由
  28. export default app;