| 12345678910111213141516171819202122232425262728293031323334353637 |
- import { createCrudRoutes } from '@/server/utils/generic-crud.routes';
- import { OpenAPIHono } from '@hono/zod-openapi';
- import { Goods } from '@/server/modules/goods/goods.entity';
- import { GoodsSchema, CreateGoodsDto, UpdateGoodsDto } from '@/server/modules/goods/goods.schema';
- import { authMiddleware } from '@/server/middleware/auth.middleware';
- import { File } from '@/server/modules/files/file.entity';
- import randomRoute from './random';
- // 创建基础CRUD路由
- const goodsRoutes = createCrudRoutes({
- entity: Goods,
- createSchema: CreateGoodsDto,
- updateSchema: UpdateGoodsDto,
- getSchema: GoodsSchema,
- listSchema: GoodsSchema,
- searchFields: ['name', 'instructions'],
- relations: ['category1', 'category2', 'category3', 'supplier', 'imageFile.uploadUser', 'slideImages.uploadUser'],
- middleware: [authMiddleware],
- userTracking: {
- createdByField: 'created_by',
- updatedByField: 'updated_by'
- },
- relationFields: {
- slideImageIds: {
- relationName: 'slideImages',
- targetEntity: File,
- joinTableName: 'goods_slide_images'
- }
- }
- });
- // 聚合基础CRUD路由和扩展路由
- const app = new OpenAPIHono()
- .route('/random', randomRoute) // 随机商品列表路由
- .route('/', goodsRoutes) // 基础CRUD路由
- export default app;
|