2
0

orders.mt.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { createCrudRoutes } from '@d8d/shared-crud';
  2. import { OrderMt } from '../../entities/order.mt.entity';
  3. import { OrderSchema, OrderListSchema } from '../../schemas/order.mt.schema';
  4. import { UserCreateOrderDto, UserUpdateOrderDto } from '../../schemas/user-order.mt.schema';
  5. import { authMiddleware } from '@d8d/auth-module-mt';
  6. import { OpenAPIHono } from '@hono/zod-openapi';
  7. import createOrderRoutes from './create-order.mt';
  8. import cancelOrderRoutes from './cancel-order.mt';
  9. // 多租户用户订单路由 - 有数据权限限制,只能访问自己的订单
  10. const userOrderCrudRoutes = createCrudRoutes({
  11. entity: OrderMt,
  12. createSchema: UserCreateOrderDto,
  13. updateSchema: UserUpdateOrderDto,
  14. getSchema: OrderSchema,
  15. listSchema: OrderSchema,
  16. searchFields: ['orderNo', 'userPhone', 'recevierName'],
  17. relations: ['user', 'merchant', 'supplier', 'deliveryAddress'],
  18. middleware: [authMiddleware],
  19. readOnly: true,
  20. userTracking: {
  21. createdByField: 'createdBy',
  22. updatedByField: 'updatedBy'
  23. },
  24. dataPermission: {
  25. enabled: true,
  26. userIdField: 'userId'
  27. },
  28. tenantOptions: {
  29. enabled: true,
  30. tenantIdField: 'tenantId'
  31. }
  32. });
  33. const userOrderRoutes = new OpenAPIHono()
  34. .route('/', createOrderRoutes)
  35. .route('/', cancelOrderRoutes)
  36. .route('/', userOrderCrudRoutes)
  37. export default userOrderRoutes;