import { IsString, IsNotEmpty, IsIn, IsOptional, IsUUID, IsInt, Min, IsEmail } from 'class-validator'; import { Type } from 'class-transformer'; import { ApiType, ApiConvention } from '@datacat/shared'; export class CreateApiEntryDto { @IsIn(['CONSULTER', 'ENREGISTRER', 'ETRE_NOTIFIE']) convention!: ApiConvention; @IsString() @IsNotEmpty() name!: string; @IsString() @IsNotEmpty() provider!: string; @IsInt() @Min(0) @Type(() => Number) versionMajor!: number; @IsInt() @Min(0) @Type(() => Number) versionMinor!: number; @IsInt() @Min(0) @Type(() => Number) versionPatch!: number; @IsString() @IsOptional() description?: string; @IsIn(['ASYNCAPI', 'OPENAPI']) type!: ApiType; @IsString() @IsNotEmpty() yamlContent!: string; @IsUUID() @IsOptional() categoryId?: string; @IsString() @IsNotEmpty() contactFunctionalName!: string; @IsString() @IsNotEmpty() contactFunctionalEntity!: string; @IsEmail() contactFunctionalEmail!: string; @IsString() @IsNotEmpty() contactTechnicalName!: string; @IsString() @IsNotEmpty() contactTechnicalEntity!: string; @IsEmail() contactTechnicalEmail!: string; }