diff --git a/src/modules/contact/dto/create-contact.dto.ts b/src/modules/contact/dto/create-contact.dto.ts index 75a380d..134bd54 100644 --- a/src/modules/contact/dto/create-contact.dto.ts +++ b/src/modules/contact/dto/create-contact.dto.ts @@ -1,5 +1,6 @@ -import { IsNotEmpty, IsString, IsOptional, IsMobilePhone } from 'class-validator'; +import { IsNotEmpty, IsString, IsOptional, IsMobilePhone, IsEnum } from 'class-validator'; import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger'; +import { ContactScope } from '../interface/interface'; export class CreateContactDto { @IsOptional() @@ -12,6 +13,11 @@ export class CreateContactDto { @ApiProperty({ example: 'I have a question about your menu items', description: 'Contact content/message' }) content!: string; + @IsNotEmpty() + @IsEnum(['application', 'restaurant']) + @ApiProperty({ description: 'Contact Scope' }) + scope!: ContactScope; + @IsOptional() @IsString() @IsMobilePhone('fa-IR') diff --git a/src/modules/contact/dto/find-contacts.dto.ts b/src/modules/contact/dto/find-contacts.dto.ts index d5f9249..4a662bd 100644 --- a/src/modules/contact/dto/find-contacts.dto.ts +++ b/src/modules/contact/dto/find-contacts.dto.ts @@ -38,4 +38,5 @@ export class FindContactsDto { @IsEnum(ContactStatusEnum) @ApiPropertyOptional({ enum: ContactStatusEnum, description: 'Filter by status' }) status?: ContactStatusEnum; + } diff --git a/src/modules/contact/entities/contact.entity.ts b/src/modules/contact/entities/contact.entity.ts index 19f9b6c..ba0657c 100644 --- a/src/modules/contact/entities/contact.entity.ts +++ b/src/modules/contact/entities/contact.entity.ts @@ -1,6 +1,6 @@ -import { Entity, Property } from '@mikro-orm/core'; +import { Entity, Enum, Property } from '@mikro-orm/core'; import { BaseEntity } from '../../../common/entities/base.entity'; -import { ContactStatusEnum } from '../interface/interface'; +import { ContactScope, ContactStatusEnum } from '../interface/interface'; @Entity({ tableName: 'contacts' }) export class Contact extends BaseEntity { @@ -13,6 +13,9 @@ export class Contact extends BaseEntity { @Property({ nullable: true }) phone?: string | null = null; + @Enum(() => ContactScope) + scope: ContactScope + @Property({ default: ContactStatusEnum.New }) status: ContactStatusEnum = ContactStatusEnum.New; } diff --git a/src/modules/contact/interface/interface.ts b/src/modules/contact/interface/interface.ts index 8e71bfb..5ea2f80 100644 --- a/src/modules/contact/interface/interface.ts +++ b/src/modules/contact/interface/interface.ts @@ -2,3 +2,8 @@ export enum ContactStatusEnum { New = 'new', Seen = 'seen', } + +export enum ContactScope { + New = 'application', + Seen = 'restaurant', +}