Add images property to CreateRestaurantDto and Restaurant entity; update UploaderController with AdminAuthGuard and API tags for enhanced security and documentation.

This commit is contained in:
2025-11-18 10:30:45 +03:30
parent 6f22dddcec
commit 82f5cae16f
3 changed files with 19 additions and 6 deletions
@@ -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()
@@ -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;
+5 -6
View File
@@ -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);
}