admin-goods-routes.ts 1023 B

12345678910111213141516171819202122232425262728
  1. import { createCrudRoutes } from '@d8d/shared-crud';
  2. import { authMiddleware } from '@d8d/auth-module';
  3. import { Goods } from '../entities/goods.entity.js';
  4. import { AdminGoodsSchema, AdminCreateGoodsDto, AdminUpdateGoodsDto } from '../schemas/admin-goods.schema.js';
  5. import { File } from '@d8d/file-module';
  6. export const adminGoodsRoutes = createCrudRoutes({
  7. entity: Goods,
  8. createSchema: AdminCreateGoodsDto,
  9. updateSchema: AdminUpdateGoodsDto,
  10. getSchema: AdminGoodsSchema,
  11. listSchema: AdminGoodsSchema,
  12. searchFields: ['name', 'instructions'],
  13. relations: ['category1', 'category2', 'category3', 'supplier', 'imageFile.uploadUser', 'slideImages.uploadUser'],
  14. middleware: [authMiddleware],
  15. userTracking: {
  16. createdByField: 'createdBy',
  17. updatedByField: 'updatedBy'
  18. },
  19. relationFields: {
  20. slideImageIds: {
  21. relationName: 'slideImages',
  22. targetEntity: File,
  23. joinTableName: 'goods_slide_images'
  24. }
  25. }
  26. // 管理员路由不使用数据权限控制,保持完整CRUD功能
  27. });