delivery
This commit is contained in:
@@ -8,9 +8,9 @@ export class CreateDeliveryDto {
|
|||||||
@IsEnum(DeliveryMethodEnum)
|
@IsEnum(DeliveryMethodEnum)
|
||||||
method!: DeliveryMethodEnum;
|
method!: DeliveryMethodEnum;
|
||||||
|
|
||||||
@ApiProperty({ example: 'سرو در رستوران', description: 'Delivery method title' })
|
@ApiProperty({ example: 'سرو در رستوران', description: 'Delivery method display name' })
|
||||||
@IsString()
|
@IsString()
|
||||||
title!: string;
|
name!: string;
|
||||||
|
|
||||||
@ApiProperty({ example: 5000, description: 'Delivery fee' })
|
@ApiProperty({ example: 5000, description: 'Delivery fee' })
|
||||||
@IsNumber()
|
@IsNumber()
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import { DeliveryFeeTypeEnum, DeliveryMethodEnum } from '../interface/delivery';
|
|||||||
|
|
||||||
@Entity({ tableName: 'deliveries' })
|
@Entity({ tableName: 'deliveries' })
|
||||||
export class Delivery extends BaseEntity {
|
export class Delivery extends BaseEntity {
|
||||||
@Property()
|
@Property({ fieldName: 'title' })
|
||||||
title!: string;
|
name!: string;
|
||||||
|
|
||||||
@Enum(() => DeliveryMethodEnum)
|
@Enum(() => DeliveryMethodEnum)
|
||||||
method!: DeliveryMethodEnum;
|
method!: DeliveryMethodEnum;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ export class DeliveryService {
|
|||||||
private readonly deliveryRepository: DeliveryRepository,
|
private readonly deliveryRepository: DeliveryRepository,
|
||||||
private readonly restRepository: RestRepository,
|
private readonly restRepository: RestRepository,
|
||||||
private readonly em: EntityManager,
|
private readonly em: EntityManager,
|
||||||
) {}
|
) { }
|
||||||
|
|
||||||
async create(restId: string, createDto: CreateDeliveryDto): Promise<Delivery> {
|
async create(restId: string, createDto: CreateDeliveryDto): Promise<Delivery> {
|
||||||
const restaurant = await this.restRepository.findOne({ id: restId });
|
const restaurant = await this.restRepository.findOne({ id: restId });
|
||||||
@@ -34,7 +34,7 @@ export class DeliveryService {
|
|||||||
const data: RequiredEntityData<Delivery> = {
|
const data: RequiredEntityData<Delivery> = {
|
||||||
restaurant,
|
restaurant,
|
||||||
method: createDto.method,
|
method: createDto.method,
|
||||||
title: createDto.title,
|
name: createDto.name,
|
||||||
deliveryFee: createDto.deliveryFee,
|
deliveryFee: createDto.deliveryFee,
|
||||||
minOrderPrice: createDto.minOrderPrice,
|
minOrderPrice: createDto.minOrderPrice,
|
||||||
description: createDto.description,
|
description: createDto.description,
|
||||||
@@ -77,7 +77,7 @@ export class DeliveryService {
|
|||||||
throw new NotFoundException(`روش ارسال با شناسه ${deliveryId} برای رستوران با شناسه ${restId} یافت نشد.`);
|
throw new NotFoundException(`روش ارسال با شناسه ${deliveryId} برای رستوران با شناسه ${restId} یافت نشد.`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If name is being updated, check for conflicts
|
// If method is being updated, check for conflicts
|
||||||
if (updateDto.method !== undefined && updateDto.method !== delivery.method) {
|
if (updateDto.method !== undefined && updateDto.method !== delivery.method) {
|
||||||
const existing = await this.deliveryRepository.findOne({
|
const existing = await this.deliveryRepository.findOne({
|
||||||
restaurant: { id: restId },
|
restaurant: { id: restId },
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { DeliveryMethodEnum } from '../../modules/delivery/interface/delivery';
|
|||||||
|
|
||||||
export interface DeliveryMethodData {
|
export interface DeliveryMethodData {
|
||||||
method: DeliveryMethodEnum;
|
method: DeliveryMethodEnum;
|
||||||
title: string;
|
name: string;
|
||||||
description: string;
|
description: string;
|
||||||
deliveryFee: number;
|
deliveryFee: number;
|
||||||
minOrderPrice: number;
|
minOrderPrice: number;
|
||||||
@@ -13,7 +13,7 @@ export interface DeliveryMethodData {
|
|||||||
export const deliveryMethodsData: DeliveryMethodData[] = [
|
export const deliveryMethodsData: DeliveryMethodData[] = [
|
||||||
{
|
{
|
||||||
method: DeliveryMethodEnum.DineIn,
|
method: DeliveryMethodEnum.DineIn,
|
||||||
title: 'سرو در رستوران',
|
name: 'سرو در رستوران',
|
||||||
description: 'سرو غذا در رستوران',
|
description: 'سرو غذا در رستوران',
|
||||||
deliveryFee: 0,
|
deliveryFee: 0,
|
||||||
minOrderPrice: 0,
|
minOrderPrice: 0,
|
||||||
@@ -22,7 +22,7 @@ export const deliveryMethodsData: DeliveryMethodData[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
method: DeliveryMethodEnum.CustomerPickup,
|
method: DeliveryMethodEnum.CustomerPickup,
|
||||||
title: 'برداشت از رستوران',
|
name: 'برداشت از رستوران',
|
||||||
description: 'برداشت غذا از رستوران',
|
description: 'برداشت غذا از رستوران',
|
||||||
deliveryFee: 0,
|
deliveryFee: 0,
|
||||||
minOrderPrice: 0,
|
minOrderPrice: 0,
|
||||||
@@ -31,7 +31,7 @@ export const deliveryMethodsData: DeliveryMethodData[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
method: DeliveryMethodEnum.DeliveryCar,
|
method: DeliveryMethodEnum.DeliveryCar,
|
||||||
title: 'تحویل با ماشین',
|
name: 'تحویل با ماشین',
|
||||||
description: 'تحویل غذا با ماشین',
|
description: 'تحویل غذا با ماشین',
|
||||||
deliveryFee: 5000,
|
deliveryFee: 5000,
|
||||||
minOrderPrice: 50000,
|
minOrderPrice: 50000,
|
||||||
@@ -40,7 +40,7 @@ export const deliveryMethodsData: DeliveryMethodData[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
method: DeliveryMethodEnum.DeliveryCourier,
|
method: DeliveryMethodEnum.DeliveryCourier,
|
||||||
title: 'تحویل با پیک',
|
name: 'تحویل با پیک',
|
||||||
description: 'تحویل غذا با پیک',
|
description: 'تحویل غذا با پیک',
|
||||||
deliveryFee: 10000,
|
deliveryFee: 10000,
|
||||||
minOrderPrice: 100000,
|
minOrderPrice: 100000,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ export class DeliveryMethodsSeeder {
|
|||||||
const delivery = em.create(Delivery, {
|
const delivery = em.create(Delivery, {
|
||||||
restaurant,
|
restaurant,
|
||||||
method: methodData.method,
|
method: methodData.method,
|
||||||
title: methodData.title,
|
name: methodData.name,
|
||||||
description: methodData.description,
|
description: methodData.description,
|
||||||
deliveryFee: methodData.deliveryFee,
|
deliveryFee: methodData.deliveryFee,
|
||||||
minOrderPrice: methodData.minOrderPrice,
|
minOrderPrice: methodData.minOrderPrice,
|
||||||
@@ -33,13 +33,13 @@ export class DeliveryMethodsSeeder {
|
|||||||
} else {
|
} else {
|
||||||
// Update existing delivery method if needed
|
// Update existing delivery method if needed
|
||||||
if (
|
if (
|
||||||
existing.title !== methodData.title ||
|
existing.name !== methodData.name ||
|
||||||
existing.description !== methodData.description ||
|
existing.description !== methodData.description ||
|
||||||
existing.deliveryFee !== methodData.deliveryFee ||
|
existing.deliveryFee !== methodData.deliveryFee ||
|
||||||
existing.minOrderPrice !== methodData.minOrderPrice ||
|
existing.minOrderPrice !== methodData.minOrderPrice ||
|
||||||
existing.order !== methodData.order
|
existing.order !== methodData.order
|
||||||
) {
|
) {
|
||||||
existing.title = methodData.title;
|
existing.name = methodData.name;
|
||||||
existing.description = methodData.description;
|
existing.description = methodData.description;
|
||||||
existing.deliveryFee = methodData.deliveryFee;
|
existing.deliveryFee = methodData.deliveryFee;
|
||||||
existing.minOrderPrice = methodData.minOrderPrice;
|
existing.minOrderPrice = methodData.minOrderPrice;
|
||||||
|
|||||||
Reference in New Issue
Block a user