add: rent fields to company

This commit is contained in:
2026-03-16 09:33:22 +03:30
parent 2babd20419
commit cec2d85801
5 changed files with 65 additions and 3 deletions
@@ -1,4 +1,4 @@
import { ApiProperty, PickType } from "@nestjs/swagger";
import { ApiProperty, ApiPropertyOptional, PickType } from "@nestjs/swagger";
import { Type } from "class-transformer";
import {
ArrayMinSize,
@@ -87,6 +87,21 @@ export class CreateCompanyDto extends PickType(CompleteRegistrationDto, ["phone"
@ApiProperty({ description: "وضعیت فعالیت", example: true })
isActive?: boolean;
@IsBoolean()
@ApiProperty({ description: "وضعیت اجاره", example: true })
isRented: boolean;
@IsOptional()
@IsDateString()
@ApiPropertyOptional({ description: " تاریخ پایان قرارداد اجاره در صورتیکه اجاره ای است" })
rentEndAt?: string;
@IsOptional()
@IsArray()
@ValidateNested({ each: true })
@ApiPropertyOptional({ description: "تصاویر قرارداد اجاره" })
rentContractImages?: string[];
@IsNotEmpty({ message: CompanyMessage.INDUSTRY_ID_REQUIRED })
@IsUUID("7", { message: CompanyMessage.INDUSTRY_ID_SHOULD_BE_UUID })
@ApiProperty({ description: "شناسه صنعت", example: "123e4567-e89b-12d3-a456-426614174000" })
@@ -54,6 +54,15 @@ export class Company extends BaseEntity {
@Property({ type: "boolean", default: true })
isActive!: boolean & Opt;
@Property({ type: "boolean", default: false })
isRented!: boolean & Opt;
@Property({ type: "json", nullable: true })
rentContractImages?: string[];
@Property({ nullable: true })
rentEndAt?: Date;
@Enum({ items: () => CompanyStatus, nativeEnumName: "company_status", nullable: false })
status!: CompanyStatus;
@@ -30,7 +30,7 @@ export class CompaniesService {
private readonly passwordService: PasswordService,
private readonly em: EntityManager,
private readonly companyRequestRepository: CompanyRequestRepository,
) {}
) { }
async create(createDto: CreateCompanyDto, business: Business) {
const em = this.em.fork();
@@ -452,7 +452,7 @@ export class CompaniesService {
business,
chiefExecutiveOfficer: "chiefExecutiveOfficer" in createDto ? createDto.chiefExecutiveOfficer : `${createDto.firstName} ${createDto.lastName}`,
email: createDto.email,
phone: createDto.phone,
phone: createDto.phone
});
await em.persistAndFlush(company);