seeder
This commit is contained in:
@@ -17,6 +17,11 @@ export function getSwaggerConfig(app: INestApplication) {
|
||||
displayRequestDuration: true,
|
||||
filter: true,
|
||||
showExtensions: true,
|
||||
docExpansion: 'none',
|
||||
|
||||
// HIDE MODELS / SCHEMAS
|
||||
defaultModelsExpandDepth: -1,
|
||||
defaultModelExpandDepth: -1,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,4 +2,3 @@ import { PartialType } from '@nestjs/swagger';
|
||||
import { CreateDeliveryDto } from './create-delivery.dto';
|
||||
|
||||
export class UpdateDeliveryDto extends PartialType(CreateDeliveryDto) {}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export enum DeliveryName {
|
||||
export enum DeliveryMethodEnum {
|
||||
DineIn = 'dineIn',
|
||||
Pickup = 'pickup',
|
||||
DeliveryCar = 'deliveryCar',
|
||||
|
||||
@@ -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<Delivery> = {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user