import { TokenAccount } from '@/common/decorators/tokenInfo.decorator' import { multerImageOptions } from '@/multer.config' import { Body, Controller, Get, Param, Patch, Post, UploadedFile, UseInterceptors, } from '@nestjs/common' import { FileInterceptor } from '@nestjs/platform-express' import { ApiBody, ApiConsumes, ApiTags } from '@nestjs/swagger' import { CreateGoodDto, UpdateGoodDto } from './dto/good.dto' import type { ConsumerBusinessActivityGoodsServiceFindAllResponseDto, ConsumerBusinessActivityGoodsServiceFindOneResponseDto, } from './dto/goods-response.dto' import { ConsumerBusinessActivityGoodsService } from './goods.service' @ApiTags('ConsumerBusinessActivityGoods') @Controller('consumer/business_activities/:businessActivityId/goods') export class ConsumerBusinessActivityGoodsController { constructor(private readonly service: ConsumerBusinessActivityGoodsService) {} @Get() async findAll( @TokenAccount('userId') consumer_id: string, @Param('businessActivityId') businessActivityId: string, ): Promise { return this.service.findAll(consumer_id, businessActivityId) } @Get(':id') async findOne( @TokenAccount('userId') consumer_id: string, @Param('businessActivityId') businessActivityId: string, @Param('id') id: string, ): Promise { return this.service.findOne(consumer_id, businessActivityId, id) } @Post() @UseInterceptors(FileInterceptor('image', multerImageOptions)) @ApiConsumes('multipart/form-data') @ApiBody({ schema: { type: 'object', properties: { image: { type: 'string', format: 'binary' }, }, }, }) create( @Param('businessActivityId') businessActivityId: string, @Body() data: CreateGoodDto, @UploadedFile() file: Express.Multer.File, ) { return this.service.create(businessActivityId, data, file) } @Patch(':id') @UseInterceptors(FileInterceptor('image', multerImageOptions)) @ApiConsumes('multipart/form-data') @ApiBody({ schema: { type: 'object', properties: { image: { type: 'string', format: 'binary' }, }, }, }) update( @TokenAccount('userId') consumer_id: string, @Param('businessActivityId') businessActivityId: string, @Param('id') id: string, @Body() data: UpdateGoodDto, @UploadedFile() file: Express.Multer.File, ) { return this.service.update(consumer_id, businessActivityId, id, data, file) } // @Delete(':id') // async delete(@Param('id') id: string) { // return this.businessActivityAccountsService.delete(id) // } }