mirror of
https://github.com/Tria-plc/edr-platform.git
synced 2026-08-29 18:48:11 +00:00
59 lines
1.1 KiB
TypeScript
59 lines
1.1 KiB
TypeScript
import { IsString, IsNotEmpty, IsOptional, IsEnum, MaxLength, Length, Matches, IsEmail } from 'class-validator';
|
|
import { CompanyType, CompanyStatus } from '../entities/company.entity';
|
|
import { IsValidPhone } from '../../../common/validators/is-phone-number.validator';
|
|
|
|
export class CreateCompanyDto {
|
|
@IsString()
|
|
@IsNotEmpty()
|
|
@MaxLength(200)
|
|
name!: string;
|
|
|
|
@IsEnum(CompanyType)
|
|
type!: CompanyType;
|
|
|
|
@IsOptional()
|
|
@IsEnum(CompanyStatus)
|
|
status?: CompanyStatus;
|
|
|
|
@IsString()
|
|
@IsNotEmpty()
|
|
@Length(10, 10)
|
|
@Matches(/^00\d{8}$/, {
|
|
message: 'TIN must be 10 digits starting with 00',
|
|
})
|
|
tin!: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(50)
|
|
vatNumber?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(32)
|
|
country?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
address?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(20)
|
|
@IsValidPhone()
|
|
phone?: string;
|
|
|
|
@IsOptional()
|
|
@IsEmail()
|
|
@MaxLength(150)
|
|
email?: string;
|
|
|
|
@IsOptional()
|
|
@IsString()
|
|
@MaxLength(200)
|
|
website?: string;
|
|
|
|
@IsOptional()
|
|
attributes?: Record<string, any>;
|
|
}
|