diff --git a/src/modules/restaurants/dto/create-restaurant.dto.ts b/src/modules/restaurants/dto/create-restaurant.dto.ts index 5d9b799..8a8ab33 100644 --- a/src/modules/restaurants/dto/create-restaurant.dto.ts +++ b/src/modules/restaurants/dto/create-restaurant.dto.ts @@ -85,6 +85,16 @@ export class CreateRestaurantDto { @IsArray() tagNames?: string[]; + @ApiPropertyOptional({ + example: ['https://example.com/image1.jpg', 'https://example.com/image2.jpg'], + description: 'لیست آدرس تصاویر رستوران', + type: [String], + }) + @IsOptional() + @IsArray() + @IsUrl({}, { each: true }) + images?: string[]; + @ApiPropertyOptional({ example: true, description: 'آیا رستوران اکنون باز است؟' }) @IsOptional() @IsBoolean() diff --git a/src/modules/restaurants/entities/restaurant.entity.ts b/src/modules/restaurants/entities/restaurant.entity.ts index 56c1b7f..e6f30e1 100644 --- a/src/modules/restaurants/entities/restaurant.entity.ts +++ b/src/modules/restaurants/entities/restaurant.entity.ts @@ -63,6 +63,10 @@ export class Restaurant extends BaseEntity { @Property({ nullable: true, type: 'json' }) tagNames?: string[]; + // --- تصاویر --- + @Property({ nullable: true, type: 'json' }) + images?: string[]; + // --- مالیات یا VAT --- @Property({ type: 'decimal', default: 0 }) vat?: number = 0; diff --git a/src/modules/uploader/uploader.controller.ts b/src/modules/uploader/uploader.controller.ts index 1e1d2bd..0d7c476 100644 --- a/src/modules/uploader/uploader.controller.ts +++ b/src/modules/uploader/uploader.controller.ts @@ -1,22 +1,23 @@ import { type File, FileInterceptor, FilesInterceptor } from '@nest-lab/fastify-multer'; import { Controller, Post, UploadedFile, UploadedFiles, UseGuards, UseInterceptors } from '@nestjs/common'; -import { ApiBody, ApiConsumes, ApiOperation, ApiBearerAuth } from '@nestjs/swagger'; +import { ApiBody, ApiConsumes, ApiOperation, ApiBearerAuth, ApiTags } from '@nestjs/swagger'; import { UploadMultipleFileDto, UploadSingleFileDto } from './DTO/upload-file.dto'; import { UploaderService } from './providers/uploader.service'; -// import { AuthGuard } from 'src/modules/auth/guards/auth.guard'; +import { AdminAuthGuard } from '../auth/guards/adminAuth.guard'; +@UseGuards(AdminAuthGuard) +@ApiBearerAuth() +@ApiTags('uploader') @Controller('uploader') export class UploaderController { constructor(private readonly uploaderService: UploaderService) {} @ApiOperation({ summary: 'Upload a file (admin)' }) @ApiConsumes('multipart/form-data') - // @ApiBearerAuth() @UseInterceptors(FileInterceptor('file')) @ApiBody({ type: UploadSingleFileDto }) @Post('single-file') - // @UseGuards(AuthGuard) uploadFile(@UploadedFile() file: File) { return this.uploaderService.uploadFile(file); } @@ -24,10 +25,8 @@ export class UploaderController { @ApiOperation({ summary: 'Uploads multiple files' }) @ApiConsumes('multipart/form-data') @UseInterceptors(FilesInterceptor('files')) - // @ApiBearerAuth() @ApiBody({ type: UploadMultipleFileDto }) @Post('multi-file') - // @UseGuards(AuthGuard) uploadFiles(@UploadedFiles() files: File[]) { return this.uploaderService.uploadMultiple(files); }