Expand special orders with form details, codes, and SMS copy.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
parent
63253f1877
commit
3cc4c89828
@@ -1,6 +1,19 @@
|
||||
import { IsArray, IsEnum, IsOptional, IsString, MinLength, ValidateNested } from 'class-validator';
|
||||
import {
|
||||
IsArray,
|
||||
IsBoolean,
|
||||
IsEnum,
|
||||
IsInt,
|
||||
IsISO8601,
|
||||
IsOptional,
|
||||
IsString,
|
||||
Max,
|
||||
Min,
|
||||
MinLength,
|
||||
ValidateIf,
|
||||
ValidateNested,
|
||||
} from 'class-validator';
|
||||
import { Type } from 'class-transformer';
|
||||
import { SpecialOrderCategory } from '@prisma/client';
|
||||
import { DeliveryType, SpecialOrderCategory } from '@prisma/client';
|
||||
|
||||
export class SpecialOrderImageDto {
|
||||
@IsString()
|
||||
@@ -12,44 +25,82 @@ export class SpecialOrderImageDto {
|
||||
storageKey!: string;
|
||||
}
|
||||
|
||||
export class CreateSpecialOrderDto {
|
||||
class SpecialOrderDetailsDto {
|
||||
@IsEnum(SpecialOrderCategory, { message: 'دستهبندی نامعتبر است' })
|
||||
category!: SpecialOrderCategory;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1, { message: 'مناسبت سفارش الزامی است' })
|
||||
name!: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
description?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsISO8601({}, { message: 'تاریخ موردنیاز نامعتبر است' })
|
||||
neededDate?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
receiveTime?: string;
|
||||
|
||||
@IsOptional()
|
||||
@Type(() => Number)
|
||||
@IsInt({ message: 'تعداد نفرات باید عدد باشد' })
|
||||
@Min(1, { message: 'تعداد نفرات حداقل ۱ است' })
|
||||
@Max(500, { message: 'تعداد نفرات بیش از حد مجاز است' })
|
||||
servings?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
cakeFlavor?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
filling?: string;
|
||||
|
||||
@IsOptional()
|
||||
@Type(() => Boolean)
|
||||
@IsBoolean()
|
||||
baloutSuggestedCombo?: boolean;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
coating?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
designStyle?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
cakeText?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
decorations?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsEnum(DeliveryType, { message: 'نوع دریافت نامعتبر است' })
|
||||
deliveryType?: DeliveryType;
|
||||
|
||||
@ValidateIf((dto: SpecialOrderDetailsDto) => dto.deliveryType === DeliveryType.pickup)
|
||||
@IsString({ message: 'انتخاب شعبه الزامی است' })
|
||||
@MinLength(1, { message: 'انتخاب شعبه الزامی است' })
|
||||
branchId?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => SpecialOrderImageDto)
|
||||
images?: SpecialOrderImageDto[];
|
||||
}
|
||||
|
||||
export class CreateSpecialOrderDto extends SpecialOrderDetailsDto {
|
||||
@IsString()
|
||||
@MinLength(1)
|
||||
userId!: string;
|
||||
|
||||
@IsEnum(SpecialOrderCategory, { message: 'دستهبندی نامعتبر است' })
|
||||
category!: SpecialOrderCategory;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1, { message: 'نام الزامی است' })
|
||||
name!: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
description?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => SpecialOrderImageDto)
|
||||
images?: SpecialOrderImageDto[];
|
||||
}
|
||||
|
||||
export class CreateMySpecialOrderDto {
|
||||
@IsEnum(SpecialOrderCategory, { message: 'دستهبندی نامعتبر است' })
|
||||
category!: SpecialOrderCategory;
|
||||
|
||||
@IsString()
|
||||
@MinLength(1, { message: 'نام الزامی است' })
|
||||
name!: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsString()
|
||||
description?: string;
|
||||
|
||||
@IsOptional()
|
||||
@IsArray()
|
||||
@ValidateNested({ each: true })
|
||||
@Type(() => SpecialOrderImageDto)
|
||||
images?: SpecialOrderImageDto[];
|
||||
}
|
||||
export class CreateMySpecialOrderDto extends SpecialOrderDetailsDto {}
|
||||
|
||||
Reference in New Issue
Block a user