From be823550ad006bee1299289872d31d5e289b9e3a Mon Sep 17 00:00:00 2001 From: morteza-mortezai Date: Tue, 2 Dec 2025 23:32:26 +0330 Subject: [PATCH] seeder --- src/config/swagger.config.ts | 5 +++++ .../delivery/controllers/delivery.controller.ts | 9 --------- src/modules/delivery/dto/create-delivery.dto.ts | 9 ++++----- src/modules/delivery/dto/update-delivery.dto.ts | 1 - src/modules/delivery/entities/delivery.entity.ts | 6 +++--- src/modules/delivery/interface/delivery.ts | 2 +- src/modules/delivery/providers/delivery.service.ts | 14 +++++++------- src/seeders/DatabaseSeeder.ts | 14 +++++++------- 8 files changed, 27 insertions(+), 33 deletions(-) diff --git a/src/config/swagger.config.ts b/src/config/swagger.config.ts index f6605c8..c1bb3e2 100644 --- a/src/config/swagger.config.ts +++ b/src/config/swagger.config.ts @@ -17,6 +17,11 @@ export function getSwaggerConfig(app: INestApplication) { displayRequestDuration: true, filter: true, showExtensions: true, + docExpansion: 'none', + + // HIDE MODELS / SCHEMAS + defaultModelsExpandDepth: -1, + defaultModelExpandDepth: -1, }, }); } diff --git a/src/modules/delivery/controllers/delivery.controller.ts b/src/modules/delivery/controllers/delivery.controller.ts index 7cb9f0f..117d77f 100644 --- a/src/modules/delivery/controllers/delivery.controller.ts +++ b/src/modules/delivery/controllers/delivery.controller.ts @@ -34,15 +34,6 @@ export class DeliveryController { return this.deliveryService.findAllForRestaurantId(restId); } - @Get('admin/delivery-methods') - @ApiOperation({ summary: 'Get all delivery method names' }) - @ApiOkResponse({ - description: 'List of delivery method names', - }) - findAll() { - return this.deliveryService.findAll(); - } - @UseGuards(AdminAuthGuard) @ApiBearerAuth() @Post('admin/delivery-methods/restaurant') diff --git a/src/modules/delivery/dto/create-delivery.dto.ts b/src/modules/delivery/dto/create-delivery.dto.ts index 7787373..20ba0ce 100644 --- a/src/modules/delivery/dto/create-delivery.dto.ts +++ b/src/modules/delivery/dto/create-delivery.dto.ts @@ -1,12 +1,12 @@ import { IsNumber, IsBoolean, IsOptional, IsString, Min, IsEnum } from 'class-validator'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; import { Type } from 'class-transformer'; -import { DeliveryName } from '../interface/delivery'; +import { DeliveryMethodEnum } from '../interface/delivery'; export class CreateDeliveryDto { - @ApiProperty({ example: 'dineIn', description: 'Delivery method name', enum: DeliveryName }) - @IsEnum(DeliveryName) - name!: DeliveryName; + @ApiProperty({ example: 'dineIn', description: 'Delivery method name', enum: DeliveryMethodEnum }) + @IsEnum(DeliveryMethodEnum) + method!: DeliveryMethodEnum; @ApiProperty({ example: 'سرو در رستوران', description: 'Delivery method title' }) @IsString() @@ -41,4 +41,3 @@ export class CreateDeliveryDto { @Type(() => Number) order?: number; } - diff --git a/src/modules/delivery/dto/update-delivery.dto.ts b/src/modules/delivery/dto/update-delivery.dto.ts index a98a002..90c5b6a 100644 --- a/src/modules/delivery/dto/update-delivery.dto.ts +++ b/src/modules/delivery/dto/update-delivery.dto.ts @@ -2,4 +2,3 @@ import { PartialType } from '@nestjs/swagger'; import { CreateDeliveryDto } from './create-delivery.dto'; export class UpdateDeliveryDto extends PartialType(CreateDeliveryDto) {} - diff --git a/src/modules/delivery/entities/delivery.entity.ts b/src/modules/delivery/entities/delivery.entity.ts index e167e08..924ca3e 100644 --- a/src/modules/delivery/entities/delivery.entity.ts +++ b/src/modules/delivery/entities/delivery.entity.ts @@ -1,15 +1,15 @@ import { Entity, Property, Enum, ManyToOne } from '@mikro-orm/core'; import { BaseEntity } from '../../../common/entities/base.entity'; import { Restaurant } from '../../restaurants/entities/restaurant.entity'; -import { DeliveryName } from '../interface/delivery'; +import { DeliveryMethodEnum } from '../interface/delivery'; @Entity({ tableName: 'deliveries' }) export class Delivery extends BaseEntity { @Property() title!: string; - @Enum(() => DeliveryName) - name!: DeliveryName; + @Enum(() => DeliveryMethodEnum) + method!: DeliveryMethodEnum; @ManyToOne(() => Restaurant) restaurant!: Restaurant; diff --git a/src/modules/delivery/interface/delivery.ts b/src/modules/delivery/interface/delivery.ts index ff4e9e7..81a91a2 100644 --- a/src/modules/delivery/interface/delivery.ts +++ b/src/modules/delivery/interface/delivery.ts @@ -1,4 +1,4 @@ -export enum DeliveryName { +export enum DeliveryMethodEnum { DineIn = 'dineIn', Pickup = 'pickup', DeliveryCar = 'deliveryCar', diff --git a/src/modules/delivery/providers/delivery.service.ts b/src/modules/delivery/providers/delivery.service.ts index c992336..fbb47d5 100644 --- a/src/modules/delivery/providers/delivery.service.ts +++ b/src/modules/delivery/providers/delivery.service.ts @@ -5,7 +5,7 @@ import { DeliveryRepository } from '../repositories/delivery.repository'; import { CreateDeliveryDto } from '../dto/create-delivery.dto'; import { UpdateDeliveryDto } from '../dto/update-delivery.dto'; import { RestRepository } from '../../restaurants/repositories/rest.repository'; -import { DeliveryName } from '../interface/delivery'; +import { DeliveryMethodEnum } from '../interface/delivery'; @Injectable() export class DeliveryService { @@ -24,7 +24,7 @@ export class DeliveryService { // Check if the delivery method with the same name already exists for this restaurant const existing = await this.deliveryRepository.findOne({ restaurant: { id: restId }, - name: createDto.name, + method: createDto.method, }); if (existing) { @@ -33,7 +33,7 @@ export class DeliveryService { const data: RequiredEntityData = { restaurant, - name: createDto.name, + method: createDto.method, title: createDto.title, deliveryFee: createDto.deliveryFee, minOrderPrice: createDto.minOrderPrice, @@ -75,10 +75,10 @@ export class DeliveryService { } // If name is being updated, check for conflicts - if (updateDto.name !== undefined && updateDto.name !== delivery.name) { + if (updateDto.method !== undefined && updateDto.method !== delivery.method) { const existing = await this.deliveryRepository.findOne({ restaurant: { id: restId }, - name: updateDto.name, + method: updateDto.method, id: { $ne: deliveryId }, }); @@ -106,7 +106,7 @@ export class DeliveryService { await this.em.removeAndFlush(delivery); } - findAll(): DeliveryName[] { - return Object.values(DeliveryName); + findAll(): DeliveryMethodEnum[] { + return Object.values(DeliveryMethodEnum); } } diff --git a/src/seeders/DatabaseSeeder.ts b/src/seeders/DatabaseSeeder.ts index f2f439d..fa9bc43 100644 --- a/src/seeders/DatabaseSeeder.ts +++ b/src/seeders/DatabaseSeeder.ts @@ -12,7 +12,7 @@ import { Permission, PermissionTitles } from '../common/enums/permission.enum'; import { PaymentMethod } from '../modules/payments/entities/payment-method.entity'; import { PaymentMethodEnum, PaymentGatewayEnum } from '../modules/payments/interface/payment'; import { Delivery } from '../modules/delivery/entities/delivery.entity'; -import { DeliveryName } from '../modules/delivery/interface/delivery'; +import { DeliveryMethodEnum } from '../modules/delivery/interface/delivery'; import { Schedule } from '../modules/restaurants/entities/schedule.entity'; export class DatabaseSeeder extends Seeder { @@ -235,7 +235,7 @@ export class DatabaseSeeder extends Seeder { const allRestaurantsForDeliveries = await em.find(Restaurant, {}); const deliveryMethodsData = [ { - name: DeliveryName.DineIn, + method: DeliveryMethodEnum.DineIn, title: 'سرو در رستوران', description: 'سرو غذا در رستوران', deliveryFee: 0, @@ -244,7 +244,7 @@ export class DatabaseSeeder extends Seeder { order: 1, }, { - name: DeliveryName.Pickup, + method: DeliveryMethodEnum.Pickup, title: 'تحویل در رستوران', description: 'تحویل غذا در محل', deliveryFee: 0, @@ -253,7 +253,7 @@ export class DatabaseSeeder extends Seeder { order: 2, }, { - name: DeliveryName.DeliveryCar, + method: DeliveryMethodEnum.DeliveryCar, title: 'تحویل با ماشین', description: 'تحویل غذا با ماشین', deliveryFee: 5000, @@ -262,7 +262,7 @@ export class DatabaseSeeder extends Seeder { order: 3, }, { - name: DeliveryName.DeliveryCourier, + method: DeliveryMethodEnum.DeliveryCourier, title: 'تحویل با پیک', description: 'تحویل غذا با پیک', deliveryFee: 10000, @@ -278,13 +278,13 @@ export class DatabaseSeeder extends Seeder { for (const methodData of deliveryMethodsData) { const existing = await em.findOne(Delivery, { restaurant: { id: restaurant.id }, - name: methodData.name, + method: methodData.method, }); if (!existing) { const delivery = em.create(Delivery, { restaurant, - name: methodData.name, + method: methodData.method, title: methodData.title, description: methodData.description, deliveryFee: methodData.deliveryFee,