65 lines
1.9 KiB
TypeScript
65 lines
1.9 KiB
TypeScript
import { IsNumber, IsBoolean, IsOptional, IsString, Min, IsEnum } from 'class-validator';
|
|
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
import { Type } from 'class-transformer';
|
|
import { DeliveryFeeTypeEnum, DeliveryMethodEnum } from '../interface/delivery';
|
|
|
|
export class CreateDeliveryDto {
|
|
@ApiProperty({ example: 'dineIn', description: 'Delivery method name', enum: DeliveryMethodEnum })
|
|
@IsEnum(DeliveryMethodEnum)
|
|
method!: DeliveryMethodEnum;
|
|
|
|
@ApiProperty({ example: 'سرو در رستوران', description: 'Delivery method display name' })
|
|
@IsString()
|
|
name!: string;
|
|
|
|
@ApiProperty({ example: 5000, description: 'Delivery fee' })
|
|
@IsNumber()
|
|
@Min(0)
|
|
@Type(() => Number)
|
|
deliveryFee!: number;
|
|
|
|
@ApiProperty({ example: 100000, description: 'Minimum order price for free delivery' })
|
|
@IsNumber()
|
|
@Min(0)
|
|
@Type(() => Number)
|
|
minOrderPrice!: number;
|
|
|
|
@ApiPropertyOptional({ example: 'توضیحات روش ارسال', description: 'Delivery method description' })
|
|
@IsOptional()
|
|
@IsString()
|
|
description?: string;
|
|
|
|
@ApiPropertyOptional({ example: true, description: 'Is this delivery method enabled?' })
|
|
@IsOptional()
|
|
@IsBoolean()
|
|
@Type(() => Boolean)
|
|
enabled?: boolean;
|
|
|
|
@ApiPropertyOptional({ example: 0, description: 'Display order for sorting delivery methods' })
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Type(() => Number)
|
|
order?: number;
|
|
|
|
@ApiPropertyOptional({ example: 0, description: 'Kilometer number' })
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Type(() => Number)
|
|
kilometerNumber?: number;
|
|
|
|
@ApiPropertyOptional({ example: 0, description: 'Delivery fee for kilometer' })
|
|
@IsOptional()
|
|
@IsNumber()
|
|
@Type(() => Number)
|
|
deliveryFeeForKilometer?: number;
|
|
|
|
@ApiPropertyOptional({
|
|
example: DeliveryFeeTypeEnum.FIXED,
|
|
description: 'Delivery fee type',
|
|
enum: DeliveryFeeTypeEnum,
|
|
})
|
|
@IsOptional()
|
|
@IsEnum(DeliveryFeeTypeEnum)
|
|
deliveryFeeType!: DeliveryFeeTypeEnum;
|
|
}
|