diff --git a/src/common/enums/message.enum.ts b/src/common/enums/message.enum.ts index dacfd08..8aa9142 100755 --- a/src/common/enums/message.enum.ts +++ b/src/common/enums/message.enum.ts @@ -550,6 +550,8 @@ export const enum CompanyMessage { IS_ACTIVE_REQUIRED = "وضعیت فعالیت شرکت مورد نیاز است", MAP_ADDRESS_LINK_MUST_BE_URL = "لینک نقشه شرکت باید یک URL معتبر باشد", MAP_ADDRESS_LINK_REQUIRED = "لینک نقشه شرکت مورد نیاز است", + METRAGE_MUST_BE_INT = "متراژ شرکت باید یک عدد صحیح باشد", + METRAGE_MUST_BE_POSITIVE = "متراژ شرکت باید عددی مثبت باشد", NAME_MUST_BE_STRING = "نام شرکت باید یک رشته باشد", NAME_REQUIRED = "نام شرکت مورد نیاز است", PHONE_MUST_BE_STRING = "شماره تلفن شرکت باید یک رشته باشد", diff --git a/src/modules/companies/DTO/create-company.dto.ts b/src/modules/companies/DTO/create-company.dto.ts index e8c1997..9da6dc4 100644 --- a/src/modules/companies/DTO/create-company.dto.ts +++ b/src/modules/companies/DTO/create-company.dto.ts @@ -7,12 +7,14 @@ import { IsDateString, IsEmail, IsEnum, + IsInt, IsNotEmpty, IsOptional, IsString, IsUUID, IsUrl, Length, + Min, ValidateNested, } from "class-validator"; @@ -74,6 +76,12 @@ export class CreateCompanyDto extends PickType(CompleteRegistrationDto, ["phone" @ApiProperty({ description: "آدرس تصویر کاور", example: "https://www.example.com/cover.jpg" }) coverImageUrl: string; + @IsOptional() + @IsInt({ message: CompanyMessage.METRAGE_MUST_BE_INT }) + @Min(1, { message: CompanyMessage.METRAGE_MUST_BE_POSITIVE }) + @ApiProperty({ description: "متراژ شرکت (متر مربع)", example: 500 }) + metrage?: number; + @IsOptional() @IsNotEmpty({ message: CompanyMessage.IS_ACTIVE_REQUIRED }) @IsBoolean({ message: CompanyMessage.IS_ACTIVE_MUST_BE_BOOLEAN }) @@ -114,6 +122,7 @@ export class CreateCompanyRequestDto extends PickType(CreateCompanyDto, [ "websiteUrl", "profileImageUrl", "coverImageUrl", + "metrage", "industryId", "products", "services", diff --git a/src/modules/companies/entities/company.entity.ts b/src/modules/companies/entities/company.entity.ts index acb7546..accb69c 100644 --- a/src/modules/companies/entities/company.entity.ts +++ b/src/modules/companies/entities/company.entity.ts @@ -48,6 +48,9 @@ export class Company extends BaseEntity { @Property({ type: "varchar", length: 255 }) coverImageUrl!: string; + @Property({ type: "int", nullable: true }) + metrage?: number; + @Property({ type: "boolean", default: true }) isActive!: boolean & Opt; diff --git a/src/modules/companies/repositories/company.repository.ts b/src/modules/companies/repositories/company.repository.ts index b1912c7..0302601 100644 --- a/src/modules/companies/repositories/company.repository.ts +++ b/src/modules/companies/repositories/company.repository.ts @@ -49,6 +49,7 @@ export class CompanyRepository extends EntityRepository { "status", "invoiceCount", "chiefExecutiveOfficer", + "metrage", "createdAt", "industry.id", "industry.title", @@ -75,7 +76,7 @@ export class CompanyRepository extends EntityRepository { return this.find(where, { populate: ["industry"], orderBy: { createdAt: "DESC" }, - fields: ["id", "name", "description", "profileImageUrl", "coverImageUrl", "industry.id", "industry.title", "createdAt"], + fields: ["id", "name", "description", "profileImageUrl", "coverImageUrl", "metrage", "industry.id", "industry.title", "createdAt"], }); } }